home *** CD-ROM | disk | FTP | other *** search
/ Quick PC 61 / Quick PC 61.iso / I386 / CLUSWMI.MO_ / cluswmi.mof
Encoding:
Text File  |  2003-02-21  |  98.6 KB  |  2,742 lines

  1. //**************************************************************************
  2. //*
  3. //* Copyright (c) 2000 - 2002 Microsoft Corporation
  4. //*
  5. //* File: ClusWMI.mof
  6. //*
  7. //**************************************************************************
  8.  
  9. #pragma namespace("\\\\.\\ROOT")
  10.  
  11. instance of __NameSpace
  12. {
  13.     Name = "MSCluster" ;
  14. };
  15.  
  16. #pragma namespace ("\\\\.\\Root\\MSCluster")
  17.  
  18. instance of __Win32Provider as $InstanceProv
  19. {
  20.     Name = "MS_CLUSTER_PROVIDER" ;
  21.     CLSID = "{598065EA-EDC9-4b2c-913B-5104D04D098A}" ;
  22.     ImpersonationLevel = 1 ;
  23.     PerUserInitialization = TRUE ;    // This insures that we get the most accurate information.
  24.     Hostingmodel="NetworkServicehost";
  25. };
  26.  
  27. instance of __Win32Provider as $EventProv
  28. {
  29.     Name  = "Cluster Event Provider" ;
  30.     CLSID = "{92863246-4EDE-4eff-B606-79C1971DB230}" ;
  31.     ImpersonationLevel = 1 ;
  32.     PerUserInitialization = TRUE ;    // This insures that we get the most accurate information.
  33.     Hostingmodel="NetworkServicehost";
  34. };
  35.  
  36. instance of __Win32Provider as $ClassProv
  37. {
  38.     Name = "MS_CLUSTER_CLASS_PROVIDER" ;
  39.     CLSID = "{6A52C339-DCB0-4682-8B1B-02DE2C436A6D}" ;
  40.     ImpersonationLevel = 1 ;
  41.     PerUserInitialization = TRUE ;    // This insures that we get the most accurate information.
  42.     Hostingmodel="NetworkServicehost";
  43. };
  44.  
  45. // ==================================================================
  46. //    CIM_ManagedSystemElement
  47. // ==================================================================
  48.         [Abstract ,
  49.         Locale (0x409) : ToInstance ,
  50.         Description (
  51.         "CIM_ManagedSystemElement is the base class for the System Element "
  52.         "hierarchy. Membership Criteria: Any distinguishable component of a "
  53.         "System is a candidate for inclusion in this class. Examples: software "
  54.         "components, such as files; and devices, such as disk drives and "
  55.         "controllers, and physical components such as chips and cards."
  56.         ),
  57.         UUID ("{C9D86C80-ED46-4377-8360-FC9B8A9F0C64}")
  58.         ]
  59. class CIM_ManagedSystemElement
  60. {
  61.         [MaxLen (64) ,
  62.         Description (
  63.         "The Caption property is a short textual description (one-line string) "
  64.         "of the object."
  65.         ) ]
  66.     string Caption ;
  67.  
  68.         [Description (
  69.         "The Description property provides a textual description of the object."
  70.         ) ]
  71.     string Description ;
  72.  
  73.         [Description (
  74.         "A datetime value indicating when the object was installed. A lack of a "
  75.         "value does not indicate that the object is not installed."
  76.         ) ,
  77.         MappingStrings { "MIF.DMTF|ComponentID|001.5" }
  78.         ]
  79.     datetime InstallDate ;
  80.  
  81.         [MaxLen (256) ,
  82.         Description (
  83.         "The Name property defines the label by which the object is known. When "
  84.         "subclassed, the Name property can be overridden to be a Key property."
  85.         ) ]
  86.     string Name ;
  87.  
  88.         [MaxLen (10) ,
  89.         Description (
  90.         "A string indicating the current status of the object. Various "
  91.         "operational and non-operational statuses are defined. Operational "
  92.         "statuses are \"OK\", \"Degraded\", \"Stressed\" and \"Pred Fail\". "
  93.         "\"Stressed\" indicates that the Element is functioning, but needs "
  94.         "attention. Examples of \"Stressed\" states are overload, overheated, "
  95.         "etc. The condition \"Pred Fail\" (failure predicted) indicates that an "
  96.         "Element is functioning properly but predicting a failure in the near "
  97.         "future. An example is a SMART-enabled hard drive. Non-operational "
  98.         "statuses can also be specified. These are \"Error\", \"NonRecover\", "
  99.         "\"Starting\", \"Stopping\" and \"Service\". \"NonRecover\" indicates "
  100.         "that a non-recoverable error has occurred. \"Service\" describes an "
  101.         "Element being configured, maintained or cleaned, or otherwise "
  102.         "administered. This status could apply during mirror-resilvering of a "
  103.         "disk, reload of a user permissions list, or other administrative task. "
  104.         "Not all such work is on-line, yet the Element is neither \"OK\" nor in "
  105.         "one of the other states."
  106.         ) ,
  107.         ValueMap {
  108.         "OK", "Error", "Degraded", "Unknown", "Pred Fail", "Starting",
  109.         "Stopping", "Service", "Stressed", "NonRecover"
  110.         } ]
  111.     string Status ;
  112.  
  113. }; //*** class CIM_ManagedSystemElement
  114.  
  115. // ==================================================================
  116. //    CIM_LogicalElement
  117. // ==================================================================
  118.         [Abstract ,
  119.         Locale (0x409) : ToInstance ,
  120.         Description (
  121.         "CIM_LogicalElement is a base class for all the components of a System "
  122.         "that represent abstract system components, such as Files, Processes, or "
  123.         "system capabilities in the form of Logical Devices."
  124.         ),
  125.         UUID ("{F6D42C79-DC86-4847-80A7-36CA4A5E36C8}")
  126.         ]
  127. class CIM_LogicalElement : CIM_ManagedSystemElement
  128. {
  129. }; //*** class CIM_LogicalElement
  130.  
  131. // ==================================================================
  132. //    CIM_System
  133. // ==================================================================
  134.         [Abstract ,
  135.         Locale (0x409) : ToInstance ,
  136.         Description (
  137.         "A CIM_System is a LogicalElement that aggregates an enumerable set of "
  138.         "Managed System Elements. The aggregation operates as a functional whole."
  139.         " Within any particular subclass of System, there is a well-defined list "
  140.         "of Managed System Element classes whose instances must be aggregated."
  141.         ),
  142.         UUID ("{A4D42690-0286-4369-B95C-7169809CC3EC}")
  143.         ]
  144. class CIM_System : CIM_LogicalElement
  145. {
  146.         [CIM_KEY ,
  147.         MaxLen (256) ,
  148.         Description (
  149.         "CreationClassName indicates the name of the class or the subclass used "
  150.         "in the creation of an instance. When used with the other key properties "
  151.         "of this class, this property allows all instances of this class and its "
  152.         "subclasses to be uniquely identified."
  153.         ) ]
  154.     string CreationClassName ;
  155.  
  156.         [Key ,
  157.         MaxLen (256) ,
  158.         Override ("Name") ,
  159.         Description (
  160.         "The inherited Name serves as key of a System instance in an enterprise "
  161.         "environment."
  162.         ) ]
  163.     string Name ;
  164.  
  165.         [MaxLen (64) ,
  166.         Description (
  167.         "The System object and its derivatives are Top Level Objects of CIM. "
  168.         "They provide the scope for numerous components. Having unique System "
  169.         "keys is required. A heuristic can be defined in individual System "
  170.         "subclasses to attempt to always generate the same System Name Key. The "
  171.         "NameFormat property identifies how the System name was generated, using "
  172.         "the subclass' heuristic."
  173.         ) ]
  174.     string NameFormat ;
  175.  
  176.         [MaxLen (256) ,
  177.         Description (
  178.         "A string that provides information on how the primary system owner can "
  179.         "be reached (e.g. phone number, email address, ...)."
  180.         ) ,
  181.         MappingStrings { "MIF.DMTF|General Information|001.3" }
  182.         ]
  183.     string PrimaryOwnerContact ;
  184.  
  185.         [MaxLen (64) ,
  186.         Description ("The name of the primary system owner.") ,
  187.         MappingStrings { "MIF.DMTF|General Information|001.4" }
  188.         ]
  189.     string PrimaryOwnerName ;
  190.  
  191.         [Description (
  192.         "An array (bag) of strings that specify the roles this System plays in "
  193.         "the IT-environment. Subclasses of System may override this property to "
  194.         "define explicit Roles values. Alternately, a Working Group may describe "
  195.         "the heuristics, conventions and guidelines for specifying Roles. For "
  196.         "example, for an instance of a networking system, the Roles property "
  197.         "might contain the string, 'Switch' or 'Bridge'."
  198.         ) ]
  199.     string Roles[] ;
  200.  
  201. }; //*** class CIM_System
  202.  
  203. // ===================================================================
  204. //    CIM_ComputerSystem
  205. // ===================================================================
  206.         [Abstract ,
  207.         Locale (0x409) : ToInstance ,
  208.         Description (
  209.         "A class derived from System that is a special collection of "
  210.         "ManagedSystemElements. This collection provides compute capabilities "
  211.         "and serves as aggregation point to associate one or more of the "
  212.         "following elements: FileSystem, OperatingSystem, Processor and Memory ("
  213.         "Volatile and/or NonVolatile Storage)."
  214.         ),
  215.         UUID ("{DB2EBD10-5113-44a1-96E6-52A4FB4210E1}")
  216.         ]
  217. class CIM_ComputerSystem : CIM_System
  218. {
  219.         [Override ("NameFormat") ,
  220.         Description (
  221.         "The ComputerSystem object and its derivatives are Top Level Objects of "
  222.         "CIM. They provide the scope for numerous components. Having unique "
  223.         "System keys is required. A heuristic is defined to create the "
  224.         "ComputerSystem Name to attempt to always generate the same Name, "
  225.         "independent of discovery protocol. This prevents inventory and "
  226.         "management problems where the same asset or entity is discovered "
  227.         "multiple times, but can not be resolved to a single object. Use of the "
  228.         "heuristic is optional, but recommended.\n\nThe NameFormat property "
  229.         "identifies how the ComputerSystem Name is generated, using a heuristic. "
  230.         "The heuristic is outlined, in detail, in the CIM V2 System Model spec. "
  231.         "It assumes that the documented rules are traversed in order, to "
  232.         "determine and assign a Name. The NameFormat Values list defines the "
  233.         "precedence order for assigning the ComputerSystem Name. Several rules "
  234.         "do map to the same Value.\n\nNote that the ComputerSystem Name "
  235.         "calculated using the heuristic is the System's key value. Other names "
  236.         "can be assigned and used for the ComputerSystem, that better suit a "
  237.         "business, using Aliases."
  238.         ) ,
  239.         ValueMap {
  240.         "Other", "IP", "Dial", "HID", "NWA", "HWA", "X25", "ISDN", "IPX",
  241.         "DCC", "ICD", "E.164", "SNA", "OID/OSI"
  242.         } ]
  243.     string NameFormat ;
  244.  
  245.         [MaxLen (256) ,
  246.         ArrayType ("Indexed") ,
  247.         Description (
  248.         "OtherIdentifyingInfo captures additional data, beyond System Name "
  249.         "information, that could be used to identify a ComputerSystem. One "
  250.         "example would be to hold the Fibre Channel World-Wide Name (WWN) of a "
  251.         "node. Note that if only the Fibre Channel name is available and is "
  252.         "unique (able to be used as the System key), then this property would be "
  253.         "NULL and the WWN would become the System key, its data placed in the "
  254.         "Name property."
  255.         ) ,
  256.         ModelCorrespondence { "CIM_ComputerSystem.IdentifyingDescriptions" }
  257.         ]
  258.     string OtherIdentifyingInfo[] ;
  259.  
  260.         [ArrayType ("Indexed") ,
  261.         Description (
  262.         "An array of free-form strings providing explanations and details behind "
  263.         "the entries in the OtherIdentifyingInfo array. Note, each entry of this "
  264.         "array is related to the entry in OtherIdentifyingInfo that is located "
  265.         "at the same index."
  266.         ) ,
  267.         ModelCorrespondence { "CIM_ComputerSystem.OtherIdentifyingInfo" }
  268.         ]
  269.     string IdentifyingDescriptions[] ;
  270.  
  271.         [Description (
  272.         "Enumeration indicating whether the ComputerSystem is a special-purpose "
  273.         "System (ie, dedicated to a particular use), versus being 'general "
  274.         "purpose'. For example, one could specify that the System is dedicated "
  275.         "to \"Print\" (value=11) or acts as a \"Hub\" (value=8)."
  276.         ) ,
  277.         Values {
  278.         "Not Dedicated", "Unknown", "Other", "Storage", "Router", "Switch",
  279.         "Layer 3 Switch", "Central Office Switch", "Hub", "Access Server",
  280.         "Firewall", "Print", "I/O", "Web Caching"
  281.         } ]
  282.     uint16 Dedicated[] ;
  283.  
  284. }; //*** class CIM_ComputerSystem
  285.  
  286. // =============================================================================
  287. //    CIM_UnitaryComputerSystem
  288. // =============================================================================
  289.         [Abstract ,
  290.         Locale (0x409) : ToInstance ,
  291.         Description (
  292.         "A class derived from ComputerSystem that represents a Desktop, "
  293.         "Mobile, NetPC, Server or other type of a single node Computer "
  294.         "System."
  295.         ),
  296.         UUID ("{903487A9-1E55-4489-9389-4CEE0AE6B236}")
  297.         ]
  298. class CIM_UnitaryComputerSystem : CIM_ComputerSystem
  299. {
  300.         [Description (
  301.         "This object contains the data needed to find either the "
  302.         "initial load device (its key) or the boot service to "
  303.         "request the operating system to start up. In addition, "
  304.         "the load parameters (ie, a pathname and parameters) "
  305.         "may also be specified."
  306.         ) ]
  307.     string InitialLoadInfo[];
  308.  
  309.         [Description (
  310.         "This object contains the data identifying either the "
  311.         "initial load device (its key) or the boot service that "
  312.         "requested the last operating system load. In addition, "
  313.         "the load parameters (ie, a pathname and parameters) "
  314.         "may also be specified."
  315.         ) ,
  316.         MappingStrings {
  317.         "MIB.IETF|HOST-RESOURCES-MIB.hrSystemInitialLoadDevice",
  318.         "MIB.IETF|HOST-RESOURCES-MIB.hrSystemInitialLoadParameters"
  319.         } ]
  320.     string LastLoadInfo;
  321.  
  322.         [Description (
  323.         "If enabled (value = 4), the UnitaryComputerSystem can be "
  324.         "reset via hardware (e.g. the power and reset buttons). If "
  325.         "disabled (value = 3), hardware reset is not allowed. In "
  326.         "addition to Enabled and Disabled, other Values for the "
  327.         "property are also defined - \"Not Implemented\" (5), "
  328.         "\"Other\" (1) and \"Unknown\" (2)."
  329.         ) ,
  330.         ValueMap { "1", "2", "3", "4", "5" } ,
  331.         Values {
  332.         "Other", "Unknown", "Disabled", "Enabled", "Not Implemented"
  333.         } ,
  334.         MappingStrings { "MIF.DMTF|System Hardware Security|001.4" }
  335.         ]
  336.     uint16 ResetCapability;
  337.  
  338.         [Description (
  339.         "Boolean indicating that the ComputerSystem, with its "
  340.         "running OperatingSystem, supports power management. This "
  341.         "boolean does not indicate that power management features are "
  342.         "currently enabled, or if enabled, what features are "
  343.         "supported. Refer to the PowerManagementCapabilities array "
  344.         "for this information. If this boolean is false, the integer "
  345.         "value 1 for the string, \"Not Supported\", should be the "
  346.         "only entry in the PowerManagementCapabilities array."
  347.         ) ]
  348.     boolean PowerManagementSupported;
  349.  
  350.         [Description (
  351.         "Indicates the specific power-related capabilities of a "
  352.         "ComputerSystem and its associated running OperatingSystem. "
  353.         "The values, 0=\"Unknown\", 1=\"Not Supported\", and "
  354.         "2=\"Disabled\" are self-explanatory. "
  355.         "The value, 3=\"Enabled\" indicates that the power management "
  356.         "features are currently enabled but the exact feature set "
  357.         "is unknown or the information is unavailable. "
  358.         "\"Power Saving Modes Entered Automatically\" (4) describes "
  359.         "that a system can change its power state based on usage or "
  360.         "other criteria. \"Power State Settable\" (5) indicates that "
  361.         "the SetPowerState method is supported. \"Power Cycling "
  362.         "Supported\" (6) indicates that the SetPowerState method "
  363.         "can be invoked with the PowerState input variable set to 5 ("
  364.         "\"Power Cycle\"). \"Timed Power On Supported\" (7) indicates "
  365.         "that the SetPowerState method can be invoked with the Power"
  366.         "State input variable set to 5 (\"Power Cycle\") and the Time "
  367.         "parameter set to a specific date and time, or interval, "
  368.         "for power-on."
  369.         ) ,
  370.         Values {
  371.         "Unknown", "Not Supported", "Disabled", "Enabled",
  372.         "Power Saving Modes Entered Automatically",
  373.         "Power State Settable", "Power Cycling Supported",
  374.         "Timed Power On Supported"
  375.         } ,
  376.         MappingStrings { "MIF.DMTF|System Power Controls|001.2" }
  377.         ]
  378.     uint16 PowerManagementCapabilities[];
  379.  
  380.         [Description (
  381.         "Indicates the current power state of the ComputerSystem and "
  382.         "its associated OperatingSystem. Regarding the Power Save "
  383.         "states, these are defined as follows: Value 4 (\"Power Save "
  384.         "- Unknown\") indicates that the System is known to be in a "
  385.         "power save mode, but its exact status in this mode is "
  386.         "unknown; 2 (\"Power Save - Low Power Mode\") indicates that "
  387.         "the System is in a power save state but still functioning, "
  388.         "and may exhibit degraded performance; 3 (\"Power Save - "
  389.         "Standby\") describes that the System is not functioning but "
  390.         "could be brought to full power 'quickly'; and value 7 "
  391.         "(\"Power Save - Warning\") indicates that the Computer"
  392.         "System is in a warning state, though also in a power save "
  393.         "mode."
  394.         ) ,
  395.         Values {
  396.         "Unknown", "Full Power", "Power Save - Low Power Mode",
  397.         "Power Save - Standby", "Power Save - Unknown", "Power Cycle",
  398.         "Power Off", "Power Save - Warning"
  399.         } ]
  400.     uint16 PowerState ;
  401.  
  402.     //***********
  403.     //* Methods *
  404.     //***********
  405.  
  406.         [Description (
  407.         "SetPowerState defines the desired power state of a "
  408.         "ComputerSystem and its running OperatingSystem, and when "
  409.         "the system should be put into that state. The PowerState "
  410.         "parameter is specified as one of the valid integer values "
  411.         "defined for the property, PowerState. The Time "
  412.         "parameter (for all state changes but 5, \"Power Cycle\") "
  413.         "indicates when the power state should be set, either as "
  414.         "a regular date-time value or as an interval value (where "
  415.         "the interval begins when the method invocation is received). "
  416.         "When the PowerState parameter is equal to 5, \"Power Cycle\", "
  417.         "the Time parameter indicates when the system should power on "
  418.         "again. Power off is immediate. SetPowerState should "
  419.         "return 0 if successful, 1 if the specified State and Time "
  420.         "request is not supported, and some other value if any "
  421.         "other error occurred."
  422.         ) ]
  423.     uint32 SetPowerState(
  424.         [IN] uint16 PowerState,
  425.         [IN] datetime Time
  426.         );
  427.  
  428. }; //*** class CIM_UnitaryComputerSystem
  429.  
  430. // ===================================================================
  431. //    CIM_LogicalDevice
  432. // ===================================================================
  433.         [Abstract ,
  434.         Locale (0x409) : ToInstance ,
  435.         Description (
  436.         "An abstraction or emulation of a hardware entity, that may or may not "
  437.         "be Realized in physical hardware. Any characteristics of a "
  438.         "LogicalDevice that are used to manage its operation or configuration "
  439.         "are contained in, or associated with, the LogicalDevice object. "
  440.         "Examples of the operational properties of a Printer would be paper "
  441.         "sizes supported, or detected errors. Examples of the configuration "
  442.         "properties of a Sensor Device would be threshold settings. Various "
  443.         "configurations could exist for a LogicalDevice. These configurations "
  444.         "could be contained in Setting objects and associated with the "
  445.         "LogicalDevice."
  446.         ),
  447.         UUID ("{79995733-3548-4102-98F0-8A2D65CCE350}")
  448.         ]
  449. class CIM_LogicalDevice : CIM_LogicalElement
  450. {
  451.         [Propagated ("CIM_System.CreationClassName") ,
  452.         CIM_KEY,
  453.         MaxLen (256) ,
  454.         Description ("The scoping System's CreationClassName.")
  455.         ]
  456.     string SystemCreationClassName ;
  457.  
  458.         [Propagated ("CIM_System.Name") ,
  459.         Key,
  460.         MaxLen (256) ,
  461.         Description ("The scoping System's Name.")
  462.         ]
  463.     string SystemName ;
  464.  
  465.         [CIM_KEY,
  466.         MaxLen (256) ,
  467.         Description (
  468.         "CreationClassName indicates the name of the class or the subclass used "
  469.         "in the creation of an instance. When used with the other key properties "
  470.         "of this class, this property allows all instances of this class and its "
  471.         "subclasses to be uniquely identified."
  472.         ) ]
  473.     string CreationClassName ;
  474.  
  475.         [Key,
  476.         MaxLen (64) ,
  477.         Description (
  478.         "An address or other identifying information to uniquely name the "
  479.         "LogicalDevice."
  480.         ) ]
  481.     string DeviceID ;
  482.  
  483.         [Description (
  484.         "Boolean indicating that the Device can be power managed - ie, put into "
  485.         "a power save state. This boolean does not indicate that power "
  486.         "management features are currently enabled, or if enabled, what features "
  487.         "are supported. Refer to the PowerManagementCapabilities array for this "
  488.         "information. If this boolean is false, the integer value 1, for the "
  489.         "string, \"Not Supported\", should be the only entry in the "
  490.         "PowerManagementCapabilities array."
  491.         ) ]
  492.     boolean PowerManagementSupported ;
  493.  
  494.         [Description (
  495.         "Indicates the specific power-related capabilities of a LogicalDevice. "
  496.         "The array values, 0=\"Unknown\", 1=\"Not Supported\" and 2=\"Disabled\" "
  497.         "are self-explanatory. The value, 3=\"Enabled\" indicates that the power "
  498.         "management features are currently enabled but the exact feature set is "
  499.         "unknown or the information is unavailable. \"Power Saving Modes Entered "
  500.         "Automatically\" (4) describes that a Device can change its power state "
  501.         "based on usage or other criteria. \"Power State Settable\" (5) "
  502.         "indicates that the SetPowerState method is supported. \"Power Cycling "
  503.         "Supported\" (6) indicates that the SetPowerState method can be invoked "
  504.         "with the PowerState input variable set to 5 (\"Power Cycle\"). \"Timed "
  505.         "Power On Supported\" (7) indicates that the SetPowerState method can be "
  506.         "invoked with the PowerState input variable set to 5 (\"Power Cycle\") "
  507.         "and the Time parameter set to a specific date and time, or interval, "
  508.         "for power-on."
  509.         ) ,
  510.         Values {
  511.         "Unknown", "Not Supported", "Disabled", "Enabled",
  512.         "Power Saving Modes Entered Automatically", "Power State Settable",
  513.         "Power Cycling Supported", "Timed Power On Supported"
  514.         } ]
  515.     uint16 PowerManagementCapabilities[] ;
  516.  
  517.         [Description (
  518.         "The availability and status of the Device.  For example, the "
  519.         "Availability property indicates that the Device is running and has full "
  520.         "power (value=3), or is in a warning (4), test (5), degraded (10) or "
  521.         "power save state (values 13-15 and 17). Regarding the Power Save states,"
  522.         " these are defined as follows: Value 13 (\"Power Save - Unknown\") "
  523.         "indicates that the Device is known to be in a power save mode, but its "
  524.         "exact status in this mode is unknown; 14 (\"Power Save - Low Power "
  525.         "Mode\") indicates that the Device is in a power save state but still "
  526.         "functioning, and may exhibit degraded performance; 15 (\"Power Save - "
  527.         "Standby\") describes that the Device is not functioning but could be "
  528.         "brought to full power 'quickly'; and value 17 (\"Power Save - Warning\")"
  529.         " indicates that the Device is in a warning state, though also in a "
  530.         "power save mode."
  531.         ) ,
  532.         ValueMap {
  533.         "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12",
  534.         "13", "14", "15", "16", "17", "18", "19"
  535.         } ,
  536.         Values {
  537.         "Other", "Unknown", "Running/Full Power", "Warning", "In Test",
  538.         "Not Applicable", "Power Off", "Off Line", "Off Duty", "Degraded",
  539.         "Not Installed", "Install Error", "Power Save - Unknown",
  540.         "Power Save - Low Power Mode", "Power Save - Standby", "Power Cycle",
  541.         "Power Save - Warning", "Paused", "Not Ready"
  542.         } ,
  543.         MappingStrings {
  544.         "MIF.DMTF|Operational State|004.5",
  545.         "MIB.IETF|HOST-RESOURCES-MIB.hrDeviceStatus",
  546.         "MIF.DMTF|Host Device|001.5"
  547.         } ]
  548.     uint16 Availability ;
  549.  
  550.         [Description (
  551.         "StatusInfo is a string indicating whether the LogicalDevice is in an "
  552.         "enabled (value = 3), disabled (value = 4) or some other (1) or unknown ("
  553.         "2) state. If this property does not apply to the LogicalDevice, the "
  554.         "value, 5 (\"Not Applicable\"), should be used."
  555.         ) ,
  556.         ValueMap { "1", "2", "3", "4", "5" } ,
  557.         Values {
  558.         "Other", "Unknown", "Enabled", "Disabled", "Not Applicable"
  559.         } ,
  560.         MappingStrings { "MIF.DMTF|Operational State|004.3" }
  561.         ]
  562.     uint16 StatusInfo ;
  563.  
  564.         [Description (
  565.         "LastErrorCode captures the last error code reported by the "
  566.         "LogicalDevice."
  567.         ) ]
  568.     uint32 LastErrorCode ;
  569.  
  570.         [Description (
  571.         "ErrorDescription is a free-form string supplying more information about "
  572.         "the error recorded in LastErrorCode, and information on any corrective "
  573.         "actions that may be taken."
  574.         ) ]
  575.     string ErrorDescription ;
  576.  
  577.         [Description (
  578.         "ErrorCleared is a boolean property indicating that the error reported "
  579.         "in LastErrorCode is now cleared."
  580.         ) ]
  581.     boolean ErrorCleared ;
  582.  
  583.         [MaxLen (256) ,
  584.         ArrayType ("Indexed") ,
  585.         Description (
  586.         "OtherIdentifyingInfo captures additional data, beyond DeviceID "
  587.         "information, that could be used to identify a LogicalDevice. One "
  588.         "example would be to hold the OperatingSystem's user friendly name for "
  589.         "the Device in this property."
  590.         ) ,
  591.         ModelCorrespondence { "CIM_LogicalDevice.IdentifyingDescriptions" }
  592.         ]
  593.     string OtherIdentifyingInfo[] ;
  594.  
  595.         [Description (
  596.         "The number of consecutive hours that this Device has been powered, "
  597.         "since its last power cycle."
  598.         ) ,
  599.         Units ("Hours") ,
  600.         Counter
  601.         ]
  602.     uint64 PowerOnHours ;
  603.  
  604.         [Description (
  605.         "The total number of hours that this Device has been powered."
  606.         ) ,
  607.         Units ("Hours") ,
  608.         Counter
  609.         ]
  610.     uint64 TotalPowerOnHours ;
  611.  
  612.         [ArrayType ("Indexed") ,
  613.         Description (
  614.         "An array of free-form strings providing explanations and details behind "
  615.         "the entries in the OtherIdentifyingInfo array. Note, each entry of this "
  616.         "array is related to the entry in OtherIdentifyingInfo that is located "
  617.         "at the same index."
  618.         ) ,
  619.         ModelCorrespondence { "CIM_LogicalDevice.OtherIdentifyingInfo" }
  620.         ]
  621.     string IdentifyingDescriptions[] ;
  622.  
  623.     //***********
  624.     //* Methods *
  625.     //***********
  626.  
  627.         [Description (
  628.         "SetPowerState defines the desired power state for a LogicalDevice and "
  629.         "when a Device should be put into that state. The desired power state is "
  630.         "specified by setting the PowerState parameter to one of the following "
  631.         "integer values: 1=\"Full Power\", 2=\"Power Save - Low Power Mode\", "
  632.         "3=\"Power Save - Standby\", 4=\"Power Save - Other\", 5=\"Power Cycle\" "
  633.         "or 6=\"Power Off\". The Time parameter (for all state changes but 5, "
  634.         "\"Power Cycle\") indicates when the power state should be set, either "
  635.         "as a regular date-time value or as an interval value (where the "
  636.         "interval begins when the method invocation is received). When the "
  637.         "PowerState parameter is equal to 5, \"Power Cycle\", the Time parameter "
  638.         "indicates when the Device should power on again. Power off is immediate."
  639.         " SetPowerState should return 0 if successful, 1 if the specified "
  640.         "PowerState and Time request is not supported, and some other value if "
  641.         "any other error occurred. In a subclass, the set of possible return "
  642.         "codes could be specified, using a ValueMap qualifier on the method. The "
  643.         "strings to which the ValueMap contents are 'translated' may also be "
  644.         "specified in the subclass as a Values array qualifier."
  645.         ) ]
  646.     uint32 SetPowerState(
  647.                     [IN,
  648.                     ValueMap {"1", "2", "3", "4", "5", "6"},
  649.                     Values {
  650.                     "Full Power", "Power Save - Low Power Mode",
  651.                     "Power Save - Standby", "Power Save - Other", "Power Cycle",
  652.                     "Power Off"
  653.                     } ]
  654.                 uint16 PowerState,
  655.                     [IN]
  656.                 datetime Time
  657.                 ) ;
  658.  
  659.         [Description (
  660.         "Requests a reset of the LogicalDevice. The return value should be 0 if "
  661.         "the request was successfully executed, 1 if the request is not "
  662.         "supported and some other value if an error occurred. In a subclass, the "
  663.         "set of possible return codes could be specified, using a ValueMap "
  664.         "qualifier on the method. The strings to which the ValueMap contents are "
  665.         "'translated' may also be specified in the subclass as a Values array "
  666.         "qualifier."
  667.         ) ]
  668.     uint32 Reset() ;
  669.  
  670.         [Description (
  671.         "Requests that the LogicalDevice be enabled (\"Enabled\" input parameter "
  672.         "= TRUE) or disabled (= FALSE). If successful, the Device's StatusInfo "
  673.         "property should also reflect the desired state (enabled/disabled). The "
  674.         "return code should be 0 if the request was successfully executed, 1 if "
  675.         "the request is not supported and some other value if an error occurred. "
  676.         "In a subclass, the set of possible return codes could be specified, "
  677.         "using a ValueMap qualifier on the method. The strings to which the "
  678.         "ValueMap contents are 'translated' may also be specified in the "
  679.         "subclass as a Values array qualifier."
  680.         ) ]
  681.     uint32 EnableDevice( [IN] boolean Enabled ) ;
  682.  
  683. }; //*** class CIM_LogicalDevice
  684.  
  685. // ==================================================================
  686. //    CIM_Service
  687. // ==================================================================
  688.         [Abstract ,
  689.         Locale (0x409) : ToInstance ,
  690.         Description (
  691.         "A CIM_Service is a Logical Element that contains the information "
  692.         "necessary to represent and manage the functionality provided by a "
  693.         "Device and/or SoftwareFeature. A Service is a general-purpose object "
  694.         "to configure and manage the implementation of functionality.  It is "
  695.         "not the functionality itself."
  696.         ),
  697.         UUID ("{FCFE8148-E035-4bf9-88ED-494793B152BC}")
  698.         ]
  699. class CIM_Service : CIM_LogicalElement
  700. {
  701.         [CIM_KEY,
  702.         MaxLen (256) ,
  703.         Description (
  704.         "CreationClassName indicates the name of the class or the subclass used "
  705.         "in the creation of an instance. When used with the other key properties "
  706.         "of this class, this property allows all instances of this class and its "
  707.         "subclasses to be uniquely identified."
  708.         ) ]
  709.     string CreationClassName ;
  710.  
  711.         [Override ("Name") ,
  712.         Key,
  713.         MaxLen (256) ,
  714.         Description (
  715.         "The Name property uniquely identifies the Service and provides an "
  716.         "indication of the functionality that is managed. This functionality is "
  717.         "described in more detail in the object's Description property."
  718.         ) ]
  719.     string Name ;
  720.  
  721.         [MaxLen (10) ,
  722.         Description (
  723.         "StartMode is a string value indicating whether the Service is "
  724.         "automatically started by a System, Operating System, etc. or only "
  725.         "started upon request."
  726.         ) ,
  727.         ValueMap { "Automatic", "Manual" }
  728.         ]
  729.     string StartMode ;
  730.  
  731.         [Description (
  732.         "Started is a boolean indicating whether the Service has been started ("
  733.         "TRUE), or stopped (FALSE)."
  734.         ) ]
  735.     boolean Started ;
  736.  
  737.         [Propagated ("CIM_System.CreationClassName") ,
  738.         CIM_KEY,
  739.         MaxLen (256) ,
  740.         Description ("The scoping System's CreationClassName.")
  741.         ]
  742.     string SystemCreationClassName ;
  743.  
  744.         [Propagated ("CIM_System.Name") ,
  745.         Key,
  746.         MaxLen (256) ,
  747.         Description ("The scoping System's Name.")
  748.         ]
  749.     string SystemName ;
  750.  
  751.     //***********
  752.     //* Methods *
  753.     //***********
  754.  
  755.         [Description (
  756.         "The StartService method places the Service in the started state. It "
  757.         "returns an integer value of 0 if the Service was successfully started, "
  758.         "1 if the request is not supported and any other number to indicate an "
  759.         "error. In a subclass, the set of possible return codes could be "
  760.         "specified, using a ValueMap qualifier on the method. The strings to "
  761.         "which the ValueMap contents are 'translated' may also be specified in "
  762.         "the subclass as a Values array qualifier."
  763.         ) ]
  764.     uint32 StartService() ;
  765.  
  766.         [Description (
  767.         "The StopService method places the Service in the stopped state. It "
  768.         "returns an integer value of 0 if the Service was successfully stopped, "
  769.         "1 if the request is not supported and any other number to indicate an "
  770.         "error. In a subclass, the set of possible return codes could be "
  771.         "specified, using a ValueMap qualifier on the method. The strings to "
  772.         "which the ValueMap contents are 'translated' may also be specified in "
  773.         "the subclass as a Values array qualifier."
  774.         ) ]
  775.     uint32 StopService() ;
  776.  
  777. }; //*** class CIM_Service
  778.  
  779. // ===================================================================
  780. //    CIM_ClusteringService
  781. // ===================================================================
  782.         [Abstract ,
  783.         Locale (0x409) : ToInstance ,
  784.         UUID ("{CA0A869F-8876-4be7-AADF-A427F7733415}") : ToInstance
  785.         ]
  786. class CIM_ClusteringService : CIM_Service
  787. {
  788.     //***********
  789.     //* Methods *
  790.     //***********
  791.  
  792.     uint32 AddNode( [IN] CIM_ComputerSystem Ref CS ) ;
  793.     uint32 EvictNode( [IN] CIM_ComputerSystem Ref CS ) ;
  794.  
  795. }; //*** class CIM_ClusteringService
  796.  
  797. // ==================================================================
  798. //    CIM_Dependency
  799. // ==================================================================
  800.         [Association ,
  801.         Abstract ,
  802.         Locale (0x409) : ToInstance ,
  803.         Description (
  804.         "CIM_Dependency is a generic association used to establish dependency "
  805.         "relationships between objects."
  806.         ),
  807.         UUID ("{26BB4D6A-0473-494e-A864-5CAEEB9AB330}")
  808.         ]
  809. class CIM_Dependency
  810. {
  811.         [Key ,
  812.         Description (
  813.         "Antecedent represents the independent object in this association."
  814.         ) ]
  815.     CIM_ManagedSystemElement REF Antecedent ;
  816.  
  817.         [Key ,
  818.         Description (
  819.         "Dependent represents the object dependent on the Antecedent."
  820.         ) ]
  821.     CIM_ManagedSystemElement REF Dependent ;
  822.  
  823. }; //*** class CIM_Dependency
  824.  
  825. // ==================================================================
  826. //    CIM_HostedService
  827. // ==================================================================
  828.         [Abstract ,
  829.         Association ,
  830.         Locale (0x409) : ToInstance ,
  831.         Description (
  832.         "CIM_HostedService is an association between a Service and the System on "
  833.         "which the functionality resides.  The cardinality of this association "
  834.         "is 1-to-many.  A System may host many Services. Services are weak with "
  835.         "respect to their hosting System. Heuristic:  A Service is hosted on the "
  836.         "System where the LogicalDevices or SoftwareFeatures that implement the "
  837.         "Service are located.  The model does not represent Services hosted "
  838.         "across multiple systems.  This is modeled as an ApplicationSystem that "
  839.         "acts as an aggregation point for Services, that are each located on a "
  840.         "single host."
  841.         ),
  842.         UUID ("{F59C2609-0CCC-487a-B583-184FE6FC2F53}")
  843.         ]
  844. class CIM_HostedService : CIM_Dependency
  845. {
  846.         [Override ("Antecedent") ,
  847.         Max (1) ,
  848.         Min (1) ,
  849.         Description ("The hosting System.")
  850.         ]
  851.     CIM_System REF Antecedent ;
  852.  
  853.         [Override ("Dependent") ,
  854.         Weak,
  855.         Description ("The Service hosted on the System.")
  856.         ]
  857.     CIM_Service REF Dependent ;
  858.  
  859. }; //*** class CIM_HostedService
  860.  
  861. // ==================================================================
  862. //    CIM_Component
  863. // ==================================================================
  864.         [Association ,
  865.         Abstract ,
  866.         Locale (0x409) : ToInstance ,
  867.         Aggregation ,
  868.         Description (
  869.         "CIM_Component is a generic association used to establish 'part of' "
  870.         "relationships between Managed System Elements. For example, the "
  871.         "SystemComponent association defines parts of a System."
  872.         ),
  873.         UUID ("{7C6B02AF-B639-4ca5-9A92-E5710AB090AC}")
  874.         ]
  875. class CIM_Component
  876. {
  877.         [Aggregate ,
  878.         Key ,
  879.         Description ("The parent element in the association.")
  880.         ]
  881.     CIM_ManagedSystemElement REF GroupComponent ;
  882.  
  883.         [Key ,
  884.         Description ("The child element in the association.")
  885.         ]
  886.     CIM_ManagedSystemElement REF PartComponent ;
  887.  
  888. }; //*** class CIM_Component
  889.  
  890. // ==================================================================
  891. //    CIM_SystemComponent
  892. // ==================================================================
  893.         [Abstract ,
  894.         Locale (0x409) : ToInstance ,
  895.         Association ,
  896.         Aggregation ,
  897.         Description (
  898.         "CIM_SystemComponent is a specialization of the CIM_Component "
  899.         "association that establishes 'part of' relationships between a System "
  900.         "and the Managed System Elements of which it is composed."
  901.         ),
  902.         UUID ("{D4DF8D45-2057-4f5f-AAF0-BC4452F48F1F}")
  903.         ]
  904. class CIM_SystemComponent : CIM_Component
  905. {
  906.         [Override ("GroupComponent") ,
  907.         Aggregate ,
  908.         Description ("The parent System in the Association.")
  909.         ]
  910.     CIM_System REF GroupComponent ;
  911.  
  912.         [Override ("PartComponent") ,
  913.         Description ("The child element that is a component of a System.")
  914.         ]
  915.     CIM_ManagedSystemElement REF PartComponent ;
  916.  
  917. }; //*** class CIM_SystemComponent
  918.  
  919. // ==================================================================
  920. //    CIM_SystemDevice
  921. // ==================================================================
  922.         [Abstract ,
  923.         Locale (0x409) : ToInstance ,
  924.         Association ,
  925.         Aggregation ,
  926.         Description (
  927.         "LogicalDevices may be aggregated by a System.  This relationship is "
  928.         "made explicit by the SystemDevice association."
  929.         ),
  930.         UUID ("{D6CB4144-71F3-46b3-AE99-C0AD9A930CD1}")
  931.         ]
  932. class CIM_SystemDevice : CIM_SystemComponent
  933. {
  934.         [Override ("GroupComponent") ,
  935.         Aggregate,
  936.         Max (1) ,
  937.         Min (1) ,
  938.         Description ("The parent system in the Association.")
  939.         ]
  940.     CIM_System REF GroupComponent ;
  941.  
  942.         [Override ("PartComponent") ,
  943.         Weak,
  944.         Description ("The LogicalDevice that is a component of a System.")
  945.         ]
  946.     CIM_LogicalDevice REF PartComponent ;
  947.  
  948. }; //*** class CIM_SystemDevice
  949.  
  950. // ===================================================================
  951. //    CIM_ComponentCS
  952. // ===================================================================
  953.         [Association ,
  954.         Aggregation ,
  955.         Locale (0x409) ,
  956.         Description (
  957.         "A ComputerSystem can aggregate another ComputerSystem. This association "
  958.         "can be used to model MPP Systems with workstation frontends, an I2O "
  959.         "subsystem embedded in a UnitaryComputerSystem, or a System that splits "
  960.         "functionality between two processors, potentially running different "
  961.         "OperatingSystems. For example, if a CISC Processor and its associated "
  962.         "OperatingSystem, are used for user interface and file support, and a "
  963.         "RISC Processor and its OS are used for complex mathematical operations, "
  964.         "this could be modeled as two ComputerSystems where one aggregates the "
  965.         "other. In some cases, this could be modeled as a Cluster. The "
  966.         "difference is the focus of the relationship. ComponentCS represents "
  967.         "that unique and distinct ComputerSystems are aggregated by a higher "
  968.         "level CS object. However, each of the component CSs are still "
  969.         "distinguishable entities and are only viewed as such. Alternately, with "
  970.         "a Cluster, the ComputerSystems that participate in it are "
  971.         "inconsequential, when viewed through the 'Cluster System'.\n\nWhen "
  972.         "instantiating or subclassing the ComponentCS relationship, care should "
  973.         "be taken that the component ComputerSystem meets the definitional "
  974.         "requirements of a ComputerSystem - ie, a functional whole that provides "
  975.         "compute capabilities and aggregates System Devices, an OperatingSystem, "
  976.         "etc."
  977.         ),
  978.         UUID ("{AB653DD2-EA29-4dcc-9F10-8C809A50A646}")
  979.         ]
  980. class CIM_ComponentCS : CIM_SystemComponent
  981. {
  982.         [Override ("GroupComponent") ,
  983.         Aggregate ,
  984.         Description (
  985.         "The ComputerSystem that contains and/or aggregates other Systems."
  986.         ) ]
  987.     CIM_ComputerSystem REF GroupComponent ;
  988.  
  989.         [Override ("PartComponent") ,
  990.         Description ("The contained (Sub)ComputerSystem.")
  991.         ]
  992.     CIM_ComputerSystem REF PartComponent ;
  993.  
  994. }; //*** class CIM_ComponentCS
  995.  
  996. // ===================================================================
  997. //    CIM_Cluster
  998. // ===================================================================
  999.         [Abstract ,
  1000.         Locale (0x409) : ToInstance ,
  1001.         Description (
  1002.         "A class derived from ComputerSystem that 'is made up of' two or more "
  1003.         "ComputerSystems which operate together as an atomic, functional whole "
  1004.         "to increase the performance, resources and/or RAS (Reliability, "
  1005.         "Availability and Serviceability) of the component ComputerSystems, "
  1006.         "related to some aspects of these ComputerSystems."
  1007.         ),
  1008.         UUID ("{35239F78-E086-44a2-B506-140D0D1F7DBA}")
  1009.         ]
  1010. class CIM_Cluster : CIM_ComputerSystem
  1011. {
  1012.         [Description (
  1013.         "Indicates the maximum number of nodes that may participate in the "
  1014.         "Cluster.  If unlimited, enter 0."
  1015.         ) ]
  1016.     uint32 MaxNumberOfNodes ;
  1017.  
  1018. }; //*** class CIM_Cluster
  1019.  
  1020. // ===================================================================
  1021. //    CIM_ParticipatingCS
  1022. // ===================================================================
  1023.         [Abstract ,
  1024.         Association ,
  1025.         Locale (0x409) : ToInstance ,
  1026.         Description (
  1027.         "A Cluster is composed of two or more ComputerSystems, operating "
  1028.         "together. A ComputerSystem may participate in multiple Clusters. "
  1029.         "\n\nWhen first establishing or bringing up a Cluster, only one "
  1030.         "ComputerSystem may be defined as participating in it. Therfore, the "
  1031.         "cardinality of the association for the ComputerSystem reference is "
  1032.         "Min(1)."
  1033.         ),
  1034.         UUID ("{8A5CD126-FD8B-4eb2-AEDF-5DC22B6DE989}")
  1035.         ]
  1036. class CIM_ParticipatingCS : CIM_Dependency
  1037. {
  1038.         [Override ("Antecedent") ,
  1039.         Description (
  1040.         "The ComputerSystem which participates in the Cluster."
  1041.         ) ,
  1042.         Min (1)
  1043.         ]
  1044.     CIM_ComputerSystem REF Antecedent ;
  1045.  
  1046.         [Override ("Dependent") ,
  1047.         Description ("The Cluster.")
  1048.         ]
  1049.     CIM_Cluster REF Dependent ;
  1050.  
  1051.         [Description (
  1052.         "StateOfNode indicates the condition of the participating ComputerSystem "
  1053.         "in the Cluster.  For example, one value is \"Joining\" (2)."
  1054.         ) ,
  1055.         Values {
  1056.         "Unknown", "Other", "Joining", "Paused", "Available",
  1057.         "Unavailable", "Degraded"
  1058.         } ]
  1059.     uint16 StateOfNode ;
  1060.  
  1061.         [Description (
  1062.         "RoleOfNode indicates whether the Cluster nodes are peers (value = 2), "
  1063.         "connected in a master-slave/primary-secondary relationship (values = 3 "
  1064.         "for primary, 4 for secondary), available in a standby configuration (5) "
  1065.         "or of some other (1) or unknown (0) relationship. In a System/390 "
  1066.         "environment, the nodes are identified as \"Base Plex\" (value=6) or "
  1067.         "\"Enhanced Plex\" (value=7)."
  1068.         ) ,
  1069.         Values {
  1070.         "Unknown", "Other", "Peer", "Primary", "Secondary", "Standby",
  1071.         "Base Plex", "Enhanced Plex"
  1072.         } ]
  1073.     uint16 RoleOfNode ;
  1074.  
  1075. }; //*** class CIM_ParticipatingCS
  1076.  
  1077. //************************************************************************
  1078. //* Microsoft Cluster Service Schema
  1079. //************************************************************************
  1080.  
  1081. // ===================================================================
  1082. //    MSCluster_Property
  1083. // ===================================================================
  1084.         [Abstract : ToSubClass,
  1085.         Locale (0x409) : ToInstance ,
  1086.         Description(
  1087.         "Superclass for properties of cluster objects."
  1088.         ),
  1089.         UUID ("{4D5365E3-A8F2-4167-8565-7A588D1F4FA5}")
  1090.         ]
  1091. class MSCluster_Property
  1092. {
  1093. }; //*** class MSCluster_Property
  1094.  
  1095. // ===================================================================
  1096. //    MSCluster_LogicalElement
  1097. // ===================================================================
  1098.         [Abstract ,
  1099.         Locale (0x409) : ToInstance ,
  1100.         Description (
  1101.         "Superclass for cluster objects that provide "
  1102.         "the FLAGS and CHARACTERISTICS attributes"
  1103.         ),
  1104.         UUID ("{9EB9A2F9-0751-4dcf-AB59-F8341D0F60B2}")
  1105.         ]
  1106. class MSCluster_LogicalElement : CIM_LogicalElement
  1107. {
  1108.         [Read : ToSubClass ,
  1109.         Write : ToSubClass
  1110.         ]
  1111.     uint32 Flags ;
  1112.  
  1113.         [Read : ToSubClass ,
  1114.         Write : ToSubClass
  1115.         ]
  1116.     uint32 Characteristics ;
  1117.  
  1118. }; //*** class MSCluster_LogicalElement
  1119.  
  1120. // ===================================================================
  1121. //    MSCluster_Cluster
  1122. // ===================================================================
  1123.         [Dynamic ,
  1124.         Locale (0x409) ,
  1125.         Provider ("MS_CLUSTER_PROVIDER"),
  1126.         UUID ("{9EB9A2F9-0751-4dcf-AB59-F8341D0F60B2}")
  1127.         ]
  1128. class MSCluster_Cluster : CIM_Cluster
  1129. {
  1130.         [Read : ToSubClass ,
  1131.         Description (
  1132.         "The Name property specifies the name of the cluster."
  1133.         ) ]
  1134.     string Name ;
  1135.  
  1136.         [Read : ToSubClass ,
  1137.         Write : ToSubClass ,
  1138.         Description (
  1139.         "The Description property stores administrative comments "
  1140.         "about the cluster."
  1141.         ) ]
  1142.     string Description ;
  1143.  
  1144.         [Read : ToSubClass ,
  1145.         Write : ToSubClass ,
  1146.         Description ("The location of maintenance file.")
  1147.         ]
  1148.     string MaintenanceFile ;
  1149.  
  1150.         [Read : ToSubClass ,
  1151.         Write : ToSubClass ,
  1152.         Description (
  1153.         "The AdminExtensions property provides the class identifiers "
  1154.         "(CLSIDs) for the Cluster Administrator extension DLLs that are "
  1155.         "associated with the cluster."
  1156.         ) ]
  1157.     string AdminExtensions[] ;
  1158.  
  1159.         [Read : ToSubClass ,
  1160.         Write : ToSubClass
  1161.         ]
  1162.     string GroupAdminExtensions[] ;
  1163.  
  1164.         [Read : ToSubClass ,
  1165.         Write : ToSubClass
  1166.         ]
  1167.     string NodeAdminExtensions[] ;
  1168.  
  1169.         [Read : ToSubClass ,
  1170.         Write : ToSubClass
  1171.         ]
  1172.     string ResourceAdminExtensions[] ;
  1173.  
  1174.         [Read : ToSubClass ,
  1175.         Write : ToSubClass
  1176.         ]
  1177.     string ResourceTypeAdminExtensions[] ;
  1178.  
  1179.         [Read : ToSubClass ,
  1180.         Write : ToSubClass
  1181.         ]
  1182.     string NetworkAdminExtensions[] ;
  1183.  
  1184.         [Read : ToSubClass ,
  1185.         Write : ToSubClass
  1186.         ]
  1187.     string NetworkInterfaceAdminExtensions[] ;
  1188.  
  1189.         [Read : ToSubClass ,
  1190.         Write : ToSubClass ,
  1191.         Description (
  1192.         "The SecurityDescriptor property stores Windows 2000-compatible "
  1193.         "security descriptor information."
  1194.         ) ]
  1195.     uint8 Security[] ;
  1196.  
  1197.         [Read : ToSubClass ,
  1198.         Write : ToSubClass ,
  1199.         Description ("The size of quorum log file.")
  1200.         ]
  1201.     uint32 QuorumLogFileSize ;
  1202.  
  1203.         [Read : ToSubClass ,
  1204.         Write:ToSubClass ,
  1205.         Arraytype ("Ordered") ,
  1206.         Description (
  1207.         "Prioritized array of networks. "
  1208.         "The first in the array has the highest priority"
  1209.         ) ]
  1210.     string NetworkPriorities[] ;
  1211.  
  1212.         [Read : ToSubClass ,
  1213.         Write : ToSubClass ,
  1214.         Description ("Specifies the role that the cluster automatically assigns to any newly discovered or created network.")
  1215.         ]
  1216.     uint32 DefaultNetworkRole ;
  1217.  
  1218.         [Read : ToSubClass ,
  1219.         Write : ToSubClass ,
  1220.         Description ("Controls whether a node's system, application, and security event log entries are replicated in the event logs of all other cluster nodes.")
  1221.         ]
  1222.     uint32 EnableEventLogReplication ;
  1223.  
  1224.         [Read : ToSubClass ,
  1225.         Write : ToSubClass ,
  1226.         Description ("Stores the Windows 2000 security descriptor of a cluster.")
  1227.         ]
  1228.     uint8  Security_Descriptor[] ;
  1229.  
  1230.     //***********
  1231.     //* Methods *
  1232.     //***********
  1233.  
  1234.         [Implemented]
  1235.     void Rename(
  1236.             [IN, Description ("New name of the cluster.") ]
  1237.             string NewName
  1238.          ) ;
  1239.  
  1240.         [Implemented]
  1241.     void SetQuorumResource(
  1242.             [IN, Description ("Name of the quorum resource.") ]
  1243.             string Resource
  1244.          ) ;
  1245.  
  1246.         [Implemented ,
  1247.         Static ,
  1248.         Description ("Determines if the Cluster service is installed and running on a node.") : ToSubClass
  1249.         ]
  1250.     void GetNodeClusterState(
  1251.             [OUT, Description ("State of the Cluster service on the node.") ]
  1252.             uint32 ClusterState
  1253.             ) ;
  1254.  
  1255. }; //*** class MSCluster_Cluster
  1256.  
  1257. // ===================================================================
  1258. //    MSCluster_ResourceGroup
  1259. // ===================================================================
  1260.         [Dynamic ,
  1261.         Locale (0x409) ,
  1262.         Provider ("MS_CLUSTER_PROVIDER"),
  1263.         UUID ("{DDE3A30E-55F7-4c31-B6CF-E360D12C5253}")
  1264.         ]
  1265. class MSCluster_ResourceGroup : MSCluster_LogicalElement
  1266. {
  1267.         [Read : ToSubClass ,
  1268.         Write : ToSubClass ,
  1269.         Description (
  1270.         "The Description property provides comments about the group."
  1271.         ) ]
  1272.     string Description;
  1273.  
  1274.         [Key ,
  1275.         Read : ToSubClass ,
  1276.         Description ("The Name property specifies the name of the group.")
  1277.         ]
  1278.     string Name = NULL ;
  1279.  
  1280.         [Read : ToSubClass ,
  1281.         Description ("The current state of the resource group.")
  1282.         ]
  1283.     uint32 State ;
  1284.  
  1285.         [Read : ToSubClass ,
  1286.         Write : ToSubClass ,
  1287.         Description (
  1288.         "The AutoFailbackType property specifies whether the group "
  1289.         "should automatically be failed back to the node identified "
  1290.         "as its preferred owner when that node comes back online "
  1291.         "following a failover."
  1292.         ),
  1293.         Values {
  1294.         "ClusterGroupPreventFailback", "ClusterGroupAllowFailback"
  1295.         } ]
  1296.     uint32 AutoFailbackType ;
  1297.  
  1298.         [Read : ToSubClass ,
  1299.         Write : ToSubClass ,
  1300.         Description (
  1301.         "The FailbackWindowEnd property provides the latest time that "
  1302.         "the group can be moved back to the node identified as its "
  1303.         "preferred node."
  1304.         ) ,
  1305.         Min (-1) ,
  1306.         Max (23) ,
  1307.         Units ("hours")
  1308.         ]
  1309.     sint32 FailbackWindowEnd ;
  1310.  
  1311.         [Read : ToSubClass ,
  1312.         Write : ToSubClass ,
  1313.         Description (
  1314.         "The FailbackWindowStart property provides the earliest time "
  1315.         "(that is, local time as kept by the cluster) that the group "
  1316.         "can be moved back to the node identified as its preferred node."
  1317.         ),
  1318.         Min (-1) ,
  1319.         Max (23) ,
  1320.         Units ("hours")
  1321.         ]
  1322.     sint32 FailbackWindowStart ;
  1323.  
  1324.         [Read : ToSubClass ,
  1325.         Write : ToSubClass ,
  1326.         Description (
  1327.         "The FailoverPeriod property specifies a number of hours during "
  1328.         "which a maximum number of failover attempts, specified by "
  1329.         "FailoverThreshold, can occur."
  1330.         ) ,
  1331.         Min (1) ,
  1332.         Max (1193),
  1333.         Units ("hours")
  1334.         ]
  1335.     uint32 FailoverPeriod ;
  1336.  
  1337.         [Read : ToSubClass ,
  1338.         Write : ToSubClass ,
  1339.         Description (
  1340.         "The FailoverThreshold property specifies the maximum number of "
  1341.         "failover attempts that can be made on a group within a time "
  1342.         "interval defined by FailoverPeriod."
  1343.         ) ]
  1344.     uint32 FailoverThreshold ;
  1345.  
  1346.         [Read : ToSubClass ,
  1347.         Write : ToSubClass ,
  1348.         Description (
  1349.         "The PersistentState property specifies whether a group should "
  1350.         "be left offline or brought online when the Cluster Service "
  1351.         "starts."
  1352.         ) ]
  1353.     boolean PersistentState ;
  1354.  
  1355.         [Read : ToSubClass ,
  1356.         Write : ToSubClass ,
  1357.         Description (
  1358.         "The LoadBalState property is reserved for future use "
  1359.         "and is not used by Windows Clustering at this time."
  1360.         ) ]
  1361.     uint32 LoadBalState;
  1362.  
  1363.     //***********
  1364.     //* Methods *
  1365.     //***********
  1366.  
  1367.         [Implemented]
  1368.     void BringOnline(
  1369.             [IN, Description ("How long (in seconds) the method should wait for the resource group to come online.") ]
  1370.             uint32 TimeOut
  1371.          ) ;
  1372.  
  1373.         [Implemented]
  1374.     void TakeOffline(
  1375.             [IN, Description ("How long (in seconds) the method should wait for the resource group to come offline.") ]
  1376.             uint32 TimeOut
  1377.          );
  1378.  
  1379.         [Implemented ,
  1380.         Description ("To move the group to different node.")
  1381.         ]
  1382.     void MoveToNewNode(
  1383.             [IN, Description ("Name of the node to move to. ") ] 
  1384.             string NodeName ,
  1385.             [IN, Description ("How long (in seconds) the method should wait for the resource group to move to another node.") ]
  1386.             uint32 TimeOut
  1387.          ) ;
  1388.  
  1389.         [Implemented ,
  1390.         Description ("Rename the resource group.")
  1391.         ]
  1392.     void Rename(
  1393.             [IN, Description ("New name of the resource group. ") ]
  1394.             string NewName
  1395.             ) ;
  1396.  
  1397.         [Implemented ,
  1398.         Static ,
  1399.         Description ("Create a new resource group.")
  1400.         ]
  1401.     void CreateGroup(
  1402.             [IN, Description ("Name of the resource group.") ]
  1403.             string GroupName
  1404.          ) ;
  1405.  
  1406.         [Implemented ,
  1407.         Static ,
  1408.         Description ("Delete the resource group.")
  1409.         ]
  1410.     void DeleteGroup(
  1411.          ) ;
  1412.  
  1413. }; //*** class MSCluster_ResourceGroup
  1414.  
  1415. // ===================================================================
  1416. //    MSCluster_Network
  1417. // ===================================================================
  1418.         [Dynamic ,
  1419.         Locale (0x409) ,
  1420.         Provider ("MS_CLUSTER_PROVIDER"),
  1421.         UUID ("{F541DA2A-174C-4000-9066-B755095C7E7A}")
  1422.         ]
  1423. class MSCluster_Network : MSCluster_LogicalElement
  1424. {
  1425.         [Key ,
  1426.         Read : ToSubClass ,
  1427.         Description ("The Name property provides the name of the network.")
  1428.         ]
  1429.     string Name ;
  1430.  
  1431.         [Read : ToSubClass ,
  1432.         Write : ToSubClass ,
  1433.         Description (
  1434.         "The Description property provides comments about the network."
  1435.         ) ]
  1436.     string Description ;
  1437.  
  1438.         [Read : ToSubClass ,
  1439.         Description (
  1440.         "The Address property provides the address for the entire network "
  1441.         "or subnet."
  1442.         ) ]
  1443.     string Address ;
  1444.  
  1445.         [Read : ToSubClass ,
  1446.         Description (
  1447.         "The AddressMask property provides the mask that distinguishes the "
  1448.         "network and host portions of an address."
  1449.         ) ]
  1450.     string AddressMask ;
  1451.  
  1452.         [Read : ToSubClass ,
  1453.         Write : ToSubClass ,
  1454.         Description (
  1455.         "The Role property provides the role of the network in the cluster."
  1456.         ),
  1457.         Values {
  1458.         "ClusterNetworkRoleNone", "ClusterNetworkRoleClientAccess",
  1459.         "ClusterNetworkRoleInternalUse", "ClusterNetworkRoleInternalAndClient"
  1460.         } ]
  1461.     uint32 Role ;
  1462.  
  1463.         [Read : ToSubClass ,
  1464.         Description (
  1465.         "Current state of a network."
  1466.         ) ]
  1467.     uint32 State ;
  1468.  
  1469.     //***********
  1470.     //* Methods *
  1471.     //***********
  1472.  
  1473.         [Description ("To rename the network."),
  1474.         Implemented
  1475.         ]
  1476.     void Rename( [IN] string newName );
  1477.  
  1478. }; //*** class MSCluster_Network
  1479.  
  1480. // ===================================================================
  1481. //    MSCluster_Node
  1482. // ===================================================================
  1483.         [Dynamic ,
  1484.         Locale (0x409) ,
  1485.         Provider ("MS_CLUSTER_PROVIDER"),
  1486.         UUID ("{C306EBED-0654-4360-AA70-DE912C5FC364}")
  1487.         ]
  1488. class MSCluster_Node : CIM_UnitaryComputerSystem
  1489. {
  1490.         [Read : ToSubClass ,
  1491.         Write : ToSubClass ,
  1492.         Description (
  1493.         "The Description property provides comments about the node."
  1494.         ) ]
  1495.     string Description ;
  1496.  
  1497.         [Read : ToSubClass ,
  1498.         Description (
  1499.         "The NodeHighestVersion property specifies the highest possible "
  1500.         "version of Clustering Service with which the node can join or "
  1501.         "communicate."
  1502.         ) ]
  1503.     uint32 NodeHighestVersion ;
  1504.  
  1505.         [Read : ToSubClass ,
  1506.         Description (
  1507.         "The NodeLowestVersion property specifies the lowest possible "
  1508.         "version of Clustering Service with which the node can join or "
  1509.         "communicate."
  1510.         ) ]
  1511.     uint32 NodeLowestVersion ;
  1512.  
  1513.         [Read : ToSubClass ,
  1514.         Description (
  1515.         "The MajorVersion property specifies the integer component of "
  1516.         "the Windows NT/Window 2000 version installed on the node."
  1517.         ) ]
  1518.     uint32 MajorVersion ;
  1519.  
  1520.         [Read : ToSubClass,
  1521.         Description (
  1522.         "The MinorVersion property specifies the decimal component of "
  1523.         "the Windows NT/Window 2000 version installed on the node."
  1524.         ) ]
  1525.     uint32 MinorVersion ;
  1526.  
  1527.         [Read : ToSubClass ,
  1528.         Description (
  1529.         "The BuildNumber property specifies the build number of "
  1530.         "Microsoft« Windows NT«/Windows« 2000 installed on a node."
  1531.         ) ]
  1532.     uint32 BuildNumber ;
  1533.  
  1534.         [Read : ToSubClass ,
  1535.         Description (
  1536.         "The CSDVersion property specifies the number of the most recent "
  1537.         "service pack installed on the node (if any)."
  1538.         ) ]
  1539.     uint32 CSDVersion ;
  1540.  
  1541.         [Read : ToSubClass ,
  1542.         Write : ToSubClass ,
  1543.         Description (
  1544.         "The EnableEventLogReplication property controls whether the "
  1545.         "Windows NT/Windows 2000 Event Log is replicated."
  1546.         ) ]
  1547.     uint32 EnableEventLogReplication ;
  1548.  
  1549.         [Read : ToSubClass ,
  1550.         Description ("The current state of a node.")
  1551.         ]
  1552.     uint32 State ;
  1553.  
  1554.         [Read : ToSubClass ,
  1555.         Write : ToSubClass
  1556.         ]
  1557.     uint32 Flags ;
  1558.  
  1559.         [Read : ToSubClass ,
  1560.         Write : ToSubClass
  1561.         ]
  1562.     uint32 Characteristics ;
  1563.  
  1564. }; //*** class MSCluster_Node
  1565.  
  1566. // ===================================================================
  1567. //    MSCluster_Service
  1568. // ===================================================================
  1569.         [Dynamic ,
  1570.         Locale (0x409) ,
  1571.         Provider ("MS_CLUSTER_PROVIDER"),
  1572.         UUID ("{8F9030D0-9149-4113-9ADD-6F2101285E5D}")
  1573.         ]
  1574. class MSCluster_Service : CIM_ClusteringService
  1575. {
  1576.         [Read : ToSubClass ,
  1577.         Description (
  1578.         "The NodeHighestVersion property specifies the highest possible "
  1579.         "version of Clustering Service with which the node hosting this "
  1580.         "service can join or communicate."
  1581.         ) ]
  1582.     uint32 NodeHighestVersion ;
  1583.  
  1584.         [Read : ToSubClass ,
  1585.         Description (
  1586.         "The NodeLowestVersion property specifies the lowest possible "
  1587.         "version of Clustering Service with which the node hosting this "
  1588.         "service can join or communicate."
  1589.         ) ]
  1590.     uint32 NodeLowestVersion ;
  1591.  
  1592.         [Read : ToSubClass ,
  1593.         Write : ToSubClass ,
  1594.         Description (
  1595.         "The EnableEventLogReplication property controls whether the "
  1596.         "Windows NT/Windows 2000 Event Log is replicated."
  1597.         ) ]
  1598.     uint32 EnableEventLogReplication ;
  1599.  
  1600.         [Read : ToSubClass ,
  1601.         Description ("The current state of the node hosting this service.")
  1602.         ]
  1603.     uint32 State ;
  1604.  
  1605.     //***********
  1606.     //* Methods *
  1607.     //***********
  1608.  
  1609.         [Implemented]
  1610.     void Pause() ;
  1611.  
  1612.         [Implemented]
  1613.     void Resume() ;
  1614.  
  1615. }; //*** class MSCluster_Service
  1616.  
  1617. // ===================================================================
  1618. //    MSCluster_Resource
  1619. // ===================================================================
  1620.         [Dynamic ,
  1621.         Locale (0x409) ,
  1622.         Provider ("MS_CLUSTER_PROVIDER"),
  1623.         UUID ("{C2862F9C-34DE-4b16-9EE3-099D078E9F59}")
  1624.         ]
  1625. class MSCluster_Resource : MSCluster_LogicalElement
  1626. {
  1627.         [Key ,
  1628.         Read : ToSubClass ,
  1629.         Description (
  1630.         "The Name property provides the name of the Resource."
  1631.         ) ]
  1632.     string Name ;
  1633.  
  1634.         [Read : ToSubClass ,
  1635.         Write : ToSubClass ,
  1636.         Description (
  1637.         "The Description property provides comments about the Resource."
  1638.         ) ]
  1639.     string Description ;
  1640.  
  1641.         [Read : ToSubClass ,
  1642.         Write : ToSubClass ,
  1643.         Description (
  1644.         "The DebugPrefix property specifies the path to the debugger "
  1645.         "used to debug the resource."
  1646.         ) ]
  1647.     string DebugPrefix ;
  1648.  
  1649.         [Read : ToSubClass ,
  1650.         Write : ToSubClass ,
  1651.         Description (
  1652.         "The IsAlivePollInterval property provides the recommended "
  1653.         "interval in milliseconds at which the Cluster Service should "
  1654.         "poll the resource to determine if it is operational. If it "
  1655.         "sets it to 0xFFFFFFFF, the Cluster Service uses the "
  1656.         "IsAlivePollInterval property for the resource type associated "
  1657.         "with the resource."
  1658.         ),
  1659.         Units ("Milliseconds")
  1660.         ]
  1661.     uint32 IsAlivePollInterval ;
  1662.  
  1663.         [Read : ToSubClass ,
  1664.         Write : ToSubClass ,
  1665.         Description (
  1666.         "The LooksAlivePollInterval property provides the recommended "
  1667.         "interval in milliseconds at which the Cluster Service should "
  1668.         "poll the resource to determine if it appears operational. If it "
  1669.         "sets it to 0xFFFFFFFF, the Cluster Service uses the "
  1670.         "LooksAlivePollInterval property for the resource type "
  1671.         "associated with the resource."
  1672.         ),
  1673.         Units ("Milliseconds")
  1674.         ]
  1675.     uint32 LooksAlivePollInterval ;
  1676.  
  1677.         [Description ("Reserved for future use.") ]
  1678.     uint32 LoadBalAnalysisInterval ;
  1679.  
  1680.         [Description ("Reserved for future use.") ]
  1681.     uint32 LoadBalMinMemoryUnits;
  1682.  
  1683.         [Description ("Reserved for future use.") ]
  1684.     uint32 LoadBalMinProcessorUnits;
  1685.  
  1686.         [Description ("Reserved for future use.") ]
  1687.     uint32 LoadBalSampleInterval ;
  1688.  
  1689.         [Description ("Reserved for future use.") ]
  1690.     uint32 LoadBalStartupInterval;
  1691.  
  1692.         [Read : ToSubClass ,
  1693.         Write : ToSubClass ,
  1694.         Description (
  1695.         "If a resource cannot be brought online or taken offline in "
  1696.         "the number of milliseconds specified by the PendingTimeout "
  1697.         "property, the resource is forcibly terminated."
  1698.         ) ]
  1699.     uint32 PendingTimeout ;
  1700.  
  1701.         [Read : ToSubClass ,
  1702.         Write : ToSubClass ,
  1703.         Description (
  1704.         "The PersistentState property specifies whether the resource "
  1705.         "should be brought online or left offline when the Cluster "
  1706.         "Service is started."
  1707.         ) ]
  1708.     boolean PersistentState ;
  1709.  
  1710.         [Read : ToSubClass ,
  1711.         Write : ToSubClass ,
  1712.         Description (
  1713.         "The RestartAction property describes the action to be taken "
  1714.         "by the Cluster Service if the resource fails."
  1715.         ),
  1716.         Values {
  1717.         "ClusterResourceDontRestart", "ClusterResourceRestartNoNotify",
  1718.         "ClusterResourceRestartNotify"
  1719.         } ]
  1720.     uint32 RestartAction ;
  1721.  
  1722.         [Read : ToSubClass ,
  1723.         Write : ToSubClass ,
  1724.         Description (
  1725.         "The RestartPeriod property defines an interval of time, in "
  1726.         "milliseconds, during which a specified number of restart "
  1727.         "attempts can be made on a nonresponsive resource."
  1728.         ) ]
  1729.     uint32 RestartPeriod ;
  1730.  
  1731.         [Read : ToSubClass ,
  1732.         Write : ToSubClass ,
  1733.         Description (
  1734.         "The RestartThreshold property specifies the maximum number "
  1735.         "of restart attempts that can be made on a resource within an "
  1736.         "interval defined by the RestartPeriod property before the "
  1737.         "Cluster Service initiates the action specified by the "
  1738.         "RestartAction property."
  1739.         ) ]
  1740.     uint32 RestartThreshold ;
  1741.  
  1742.         [Read : ToSubClass ,
  1743.         Write : ToSubClass ,
  1744.         Description (
  1745.         "The RetryPeriodOnFailure property specifies the interval of "
  1746.         "time (in milliseconds) that a resource should remain in a "
  1747.         "failed state before the Cluster service attempts to restart it."
  1748.         ) ]
  1749.     uint32 RetryPeriodOnFailure ;
  1750.  
  1751.         [Read : ToSubClass ,
  1752.         Write : ToSubClass ,
  1753.         Description (
  1754.         "The SeparateMonitor property indicates whether the resource "
  1755.         "requires its own Resource Monitor."
  1756.         ) ]
  1757.     boolean SeparateMonitor ;
  1758.  
  1759.         [Read : ToSubClass ,
  1760.         Write : ToSubClass ,
  1761.         Description (
  1762.         "The Type property specifies the display name for the resource's "
  1763.         "type."
  1764.         ) ]
  1765.     string  Type ;
  1766.  
  1767.         [Read : ToSubClass ,
  1768.         Description ("The current state of the resource.")
  1769.         ]
  1770.     uint32 State ;
  1771.  
  1772.         [Read : ToSubClass ,
  1773.         Write : ToSubClass ,
  1774.         Description ("The resource class.")        
  1775.         ]
  1776.     uint32 ResourceClass ;
  1777.  
  1778.         [Read : ToSubClass ,
  1779.         Write : ToSubClass ,
  1780.         Description ("The resource sub class.")
  1781.         ]
  1782.     uint32 Subclass ;
  1783.  
  1784.         [Read : ToSubClass ,
  1785.         Write : ToSubClass ,
  1786.         Description ("Private properties of the resource.")
  1787.         ]
  1788.     MSCluster_Property PrivateProperties;
  1789.  
  1790.         [Read : ToSubClass ,
  1791.         Description (
  1792.         "List of crypto checkpoints for this resource."
  1793.         ) ]
  1794.     string CryptoCheckpoints[] ;
  1795.         [Read : ToSubClass ,
  1796.         Description (
  1797.         "List of registry checkpoints for this resource."
  1798.         ) ]
  1799.     string RegistryCheckpoints[] ;
  1800.  
  1801.         [Read : ToSubClass,
  1802.         Description("The resource can be selected as the quorum resource for the cluster") ]
  1803.     boolean QuorumCapable;
  1804.  
  1805.         [Read : ToSubClass,
  1806.         Description("The resource can be selected as the quorum resource "
  1807.                   "in clusters configured using the -localquorum switch.") ]
  1808.     boolean LocalQuorumCapable;
  1809.     
  1810.         [Read : ToSubClass,
  1811.         Description("The resource cannot be deleted unless all nodes are active.") ]
  1812.     boolean DeleteRequiresAllNodes;
  1813.     
  1814.         [Read : ToSubClass,
  1815.         Description("Indicates that the resource is essential to the cluster and cannot be deleted.") ]
  1816.     boolean CoreResource;
  1817.  
  1818.     //***********
  1819.     //* Methods *
  1820.     //***********
  1821.  
  1822.         [Implemented ,
  1823.         Static ,
  1824.         Description ("Create a new resource.") : ToSubClass
  1825.         ]
  1826.     void CreateResource(
  1827.                 [IN, Description ("The group name to receive the resource.") ]
  1828.             string Group ,
  1829.                 [IN, Description ("The name to assign to the resource.") ]
  1830.             string ResourceName ,
  1831.                 [IN, Description ("The type of resource to create.") ]
  1832.             string ResourceType ,
  1833.                 [IN,
  1834.                 Description (
  1835.                 "TRUE if the resource needs a separate resource monitor."
  1836.                 ) ]
  1837.             boolean SeparateMonitor = FALSE
  1838.             ) ;
  1839.  
  1840.         [Implemented ,
  1841.         Static ,
  1842.         Description ("Delete the resource.") : ToSubClass
  1843.         ]
  1844.     void DeleteResource(
  1845.             ) ;
  1846.  
  1847.         [Implemented : ToSubClass ,
  1848.         Description (
  1849.         "Move the resource to a different group."
  1850.         ) : ToSubClass ]
  1851.     void MoveToNewGroup(
  1852.                 [IN, Description ("The group name to receive the resource.") ]
  1853.             string Group
  1854.             ) ;
  1855.  
  1856.         [Implemented : ToSubClass ,
  1857.         Description (
  1858.         "Create a dependency relationship between two resources.") : ToSubClass
  1859.         ]
  1860.     void AddDependency(
  1861.                 [IN, Description ("The resource that this resource should depend on.") ]
  1862.             string Resource
  1863.             ) ;
  1864.  
  1865.         [Implemented : ToSubClass ,
  1866.         Description (
  1867.         "Remove a dependency relationship between two resources."
  1868.         ) ]
  1869.     void RemoveDependency(
  1870.             [IN,
  1871.             Description (
  1872.             "The resource that this resource should no longer depend on."
  1873.             ) ]
  1874.         string Resource
  1875.         ) ;
  1876.  
  1877.         [Description ("Take the resource online") : ToSubClass ,
  1878.         Implemented : ToSubClass
  1879.         ]
  1880.     void BringOnline(
  1881.             [IN, Description ("How long (in seconds) the method should wait for the resource to come online.") ]
  1882.             uint32 TimeOut
  1883.          ) ;
  1884.  
  1885.         [Description ("Take the resource offline") : ToSubClass ,
  1886.         Implemented : ToSubClass
  1887.         ]
  1888.     void TakeOffline(
  1889.             [IN, Description ("How long (in seconds) the method should wait for the resource to come offline.") ]
  1890.             uint32 TimeOut
  1891.          ) ;
  1892.  
  1893.         [Description ("Rename the resource.") : ToSubClass ,
  1894.         Implemented : ToSubClass
  1895.         ]
  1896.     void Rename( [IN] string newName ) ;
  1897.  
  1898.         [Description (
  1899.         "Force this resource to become unavailable to simulate failure. "
  1900.         "Used by applications to test their failover configurations."
  1901.         ) : ToSubClass ,
  1902.         Implemented : ToSubClass
  1903.         ]
  1904.     void FailResource() ;
  1905.  
  1906.         [Description ("Add a registry checkpoint to this resource."
  1907.         ) : ToSubClass ,
  1908.         Implemented : ToSubClass
  1909.         ]
  1910.     void AddRegistryCheckpoint( [IN] string CheckpointName ) ;
  1911.  
  1912.         [Description ("Add a registry checkpoint to this resource."
  1913.         ) : ToSubClass ,
  1914.         Implemented : ToSubClass
  1915.         ]
  1916.     void RemoveRegistryCheckpoint( [IN] string CheckpointName ) ;
  1917.         [Description ("Add an encrypted  checkpoint to this resource."
  1918.         ) : ToSubClass ,
  1919.         Implemented : ToSubClass
  1920.         ]
  1921.     void AddCryptoCheckpoint( [IN] string CheckpointName ) ;
  1922.  
  1923.         [Description ("Add an encrypted checkpoint to this resource."
  1924.         ) : ToSubClass ,
  1925.         Implemented : ToSubClass
  1926.         ]
  1927.     void RemoveCryptoCheckpoint( [IN] string CheckpointName ) ;
  1928.  
  1929.  
  1930. }; //*** class MSCluster_Resource
  1931.  
  1932. // ===================================================================
  1933. //    MSCluster_ResourceType
  1934. // ===================================================================
  1935.         [Dynamic ,
  1936.         Locale (0x409) ,
  1937.         Provider ("MS_CLUSTER_PROVIDER"),
  1938.         UUID ("{2F2EF49D-37DD-47c2-8328-6586142B8C99}")
  1939.         ]
  1940. class MSCluster_ResourceType : MSCluster_LogicalElement
  1941. {
  1942.         [Key ,
  1943.         Read : ToSubClass ,
  1944.         Description (
  1945.         "The Name property provides the name of the ResourceType."
  1946.         ) ]
  1947.     string Name ;
  1948.  
  1949.         [Read : ToSubClass ,
  1950.         Write : ToSubClass ,
  1951.         Description (
  1952.         "The DisplayName property is a friendly name for the ResourceType"
  1953.         "presented in the UI."
  1954.         ) ]
  1955.     string DisplayName ;
  1956.  
  1957.         [Read : ToSubClass ,
  1958.         Write : ToSubClass ,
  1959.         Description (
  1960.         "The Description property provides comments about the ResourceType."
  1961.         ) ]
  1962.     string Description ;
  1963.  
  1964.         [Read : ToSubClass ,
  1965.         Write : ToSubClass ,
  1966.         Description (
  1967.         "The AdminExtensions property provides the class identifiers (CLSIDs) "
  1968.         "for the Cluster Administrator extension DLLs that are associated with "
  1969.         "the resource type."
  1970.         ) ]
  1971.     string AdminExtensions[] ;
  1972.  
  1973.         [Read : ToSubClass ,
  1974.         Description (
  1975.         "The DllName property provides the name of the dynamic-link library (DLL)"
  1976.         " for the resource type."
  1977.         ) ]
  1978.     string DllName ;
  1979.  
  1980.         [Read : ToSubClass ,
  1981.         Write : ToSubClass ,
  1982.         Description (
  1983.         "The IsAlivePollInterval property provides the recommended interval in "
  1984.         "milliseconds at which the Cluster Service should poll the resource to "
  1985.         "determine if it is operational."
  1986.         ) ]
  1987.     uint32 IsAlivePollInterval ;
  1988.  
  1989.         [Read : ToSubClass ,
  1990.         Write : ToSubClass ,
  1991.         Description (
  1992.         "The LooksAlivePollInterval property provides the recommended interval "
  1993.         "in milliseconds at which the Cluster Service should poll the resource "
  1994.         "to determine if it appears operational."
  1995.         ) ]
  1996.     uint32 LooksAlivePollInterval ;
  1997.  
  1998.         [Read : ToSubClass,
  1999.         Description("The resource can be selected as the quorum resource for the cluster") ]
  2000.     boolean QuorumCapable;
  2001.  
  2002.         [Read : ToSubClass,
  2003.         Description("The resource can be selected as the quorum resource "
  2004.                   "in clusters configured using the -localquorum switch.") ]
  2005.     boolean LocalQuorumCapable;
  2006.     
  2007.         [Read : ToSubClass,
  2008.         Description("The resource cannot be deleted unless all nodes are active.") ]
  2009.     boolean DeleteRequiresAllNodes;    
  2010.     
  2011.     //***********
  2012.     //* Methods *
  2013.     //***********
  2014.  
  2015.         [Implemented ,
  2016.         Static ,
  2017.         Description ("Create a new resource type.")
  2018.         ]
  2019.     void CreateResourceType( 
  2020.                 [IN, Description ("Name of the resource type.") ] 
  2021.             string Name ,
  2022.                 [IN, Description ("Display name of the resource type.") ]
  2023.             string DisplayName ,
  2024.                 [IN, Description ("Fully qualified name of the resource DLL for the resource type.") ]
  2025.             string DLLName ,
  2026.                 [IN, Description ("Default millisecond value to be used as the poll interval needed by the new resource type's LooksAlive function.") ]
  2027.             uint32 LooksAlivePollInterval ,
  2028.                 [IN, Description ("Default millisecond value to be used as the poll interval needed by the new resource type's IsAlive function.") ]
  2029.             uint32 IsAlivePollInterval
  2030.          ) ;
  2031.  
  2032.         [Implemented ,
  2033.         Static ,
  2034.         Description ("Delete a resource type.")
  2035.         ]
  2036.     void DeleteResourceType(
  2037.          ) ;
  2038.  
  2039. }; //*** class MSCluster_ResourceType
  2040.  
  2041. // ===================================================================
  2042. //    MSCluster_NetworkInterface
  2043. // ===================================================================
  2044.         [Dynamic ,
  2045.         Locale (0x409) ,
  2046.         Provider ("MS_CLUSTER_PROVIDER"),
  2047.         UUID ("{3DE393F8-8FD5-4426-901D-8EE017003A61}")
  2048.         ]
  2049. class MSCluster_NetworkInterface : CIM_LogicalDevice
  2050. {
  2051.         [Read : ToSubClass ,
  2052.         Description (
  2053.         "The Name property provides the Clustering Service-generated "
  2054.         "name for the network interface."
  2055.         ) ]
  2056.     string Name ;
  2057.  
  2058.         [Read : ToSubClass , Write: ToSubClass, Description (
  2059.         "The Description property provides comments about the network "
  2060.         "interface."
  2061.         ) ]
  2062.     string Description ;
  2063.  
  2064.         [Read : ToSubClass ,
  2065.         Description (
  2066.         "The Adapter property provides the name that is used to uniquely "
  2067.         "identify the network interface in the cluster."
  2068.         ) ]
  2069.     string Adapter ;
  2070.  
  2071.         [Read : ToSubClass ,
  2072.         Description (
  2073.         "The Address property provides the primary network address that "
  2074.         "the node uses for the network interface."
  2075.         ) ]
  2076.     string Address ;
  2077.  
  2078.         [Read : ToSubClass ,
  2079.         Description (
  2080.         "The Network property provides the name of the network to which "
  2081.         "the networkinterface is connected."
  2082.         ) ]
  2083.     string Network ;
  2084.  
  2085.         [Read : ToSubClass ,
  2086.         Description ("The current state of the network interface")
  2087.         ]
  2088.     uint32 State ;
  2089.  
  2090.         [Read : ToSubClass ,
  2091.         Write : ToSubClass
  2092.         ]
  2093.     uint32 Flags ;
  2094.  
  2095.         [Read : ToSubClass ,
  2096.         Write : ToSubClass
  2097.         ]
  2098.     uint32 Characteristics ;
  2099.  
  2100. }; //*** class MSCluster_NetworkInterface
  2101.  
  2102. // ===================================================================
  2103. //    MSCluster_ClusterToResourceGroup
  2104. // ===================================================================
  2105.         [Dynamic ,
  2106.         Provider ("MS_CLUSTER_PROVIDER"),
  2107.         Locale (0x409) ,
  2108.         UUID ("{191A06A0-4B96-4914-ABD6-6F7E5F73A191}")
  2109.         ]
  2110. class MSCluster_ClusterToResourceGroup : CIM_Component
  2111. {
  2112.         [Override ("GroupComponent") : ToSubClass ,
  2113.         Read : ToSubClass ,
  2114.         Min (1) : ToSubClass ,
  2115.         Max (1) : ToSubClass ,
  2116.         Description ("The cluster.") : ToSubClass
  2117.         ]
  2118.     MSCluster_Cluster REF GroupComponent ;
  2119.  
  2120.         [Override ("PartComponent") : ToSubClass ,
  2121.         Read : ToSubClass ,
  2122.         Description ("The group managed by cluster.") : ToSubClass
  2123.         ]
  2124.     MSCluster_ResourceGroup REF PartComponent ;
  2125.  
  2126. }; //*** class MSCluster_ClusterToResourceGroup
  2127.  
  2128. // ===================================================================
  2129. //    MSCluster_ClusterToResource
  2130. // ===================================================================
  2131.         [Dynamic ,
  2132.         Provider ("MS_CLUSTER_PROVIDER") ,
  2133.         Description ("Cluster consists of resources." ) : ToSubClass ,
  2134.         Locale (0x409) ,
  2135.         UUID ("{89AC25D0-9706-481e-98E0-7DCD7AD8BDD4}")
  2136.         ]
  2137. class MSCluster_ClusterToResource : CIM_Component
  2138. {
  2139.         [Override ("GroupComponent") : ToSubClass ,
  2140.         Read : ToSubClass,
  2141.         Min (1) : ToSubClass ,
  2142.         Max (1) : ToSubClass ,
  2143.         Description ("The cluster." ) : ToSubClass
  2144.         ]
  2145.     MSCluster_Cluster REF GroupComponent ;
  2146.  
  2147.         [Override ("PartComponent") : ToSubClass ,
  2148.         Read : ToSubClass ,
  2149.         Description ("The resource managed by the cluster.") : ToSubClass
  2150.         ]
  2151.     MSCluster_Resource REF PartComponent ;
  2152.  
  2153. }; //*** class MSCluster_ClusterToResource
  2154.  
  2155. // ===================================================================
  2156. //    MSCluster_ClusterToResourceType
  2157. // ===================================================================
  2158.         [Dynamic ,
  2159.         Provider ("MS_CLUSTER_PROVIDER") ,
  2160.         Description (
  2161.         "Type of resource that supported by the cluster."
  2162.         ) : ToSubClass ,
  2163.         Locale (0x409) ,
  2164.         UUID ("{1059D8CA-76CF-46dc-A14B-B7BB546270AD}")
  2165.         ]
  2166. class MSCluster_ClusterToResourceType : CIM_Component
  2167. {
  2168.         [Override ("GroupComponent") : ToSubClass ,
  2169.         Read : ToSubClass ,
  2170.         Min (1) : ToSubClass ,
  2171.         Max (1) : ToSubClass ,
  2172.         Description ("The cluster." ) : ToSubClass
  2173.         ]
  2174.     MSCluster_Cluster REF GroupComponent ;
  2175.  
  2176.         [Override ("PartComponent") : ToSubClass ,
  2177.         Read : ToSubClass ,
  2178.         Description ("The resourceType supported by cluster.") : ToSubClass
  2179.         ]
  2180.     MSCluster_ResourceType REF PartComponent ;
  2181.  
  2182. }; //*** class MSCluster_ClusterToResourceType
  2183.  
  2184. // ===================================================================
  2185. //    MSCluster_ResourceToPossibleOwner
  2186. // ===================================================================
  2187.         [Dynamic ,
  2188.         Provider ("MS_CLUSTER_PROVIDER") ,
  2189.         Description ("A resource can have possible owner nodes. "
  2190.         "List of the resources and their possible owner nodes."
  2191.         ) : ToSubClass ,
  2192.         Locale (0x409) ,
  2193.         UUID ("{f57d5a56-c22a-45c5-a335-c790ee0b7122}")
  2194.         ]
  2195. class MSCluster_ResourceToPossibleOwner : CIM_Component
  2196. {
  2197.         [Override ("GroupComponent") : ToSubClass ,
  2198.         Read : ToSubClass ,
  2199.         Min (1) : ToSubClass ,
  2200.         Max (1) : ToSubClass ,
  2201.         Description ("The resource." ) : ToSubClass
  2202.         ]
  2203.     MSCluster_Resource REF GroupComponent ;
  2204.  
  2205.         [Override ("PartComponent") : ToSubClass ,
  2206.         Read : ToSubClass ,
  2207.         Description ("The possible owner of this resource.") : ToSubClass
  2208.         ]
  2209.     MSCluster_Node REF PartComponent ;
  2210.  
  2211. }; //*** class MSCluster_ResourceToPossibleOwner
  2212.  
  2213.  
  2214. // ===================================================================
  2215. //    MSCluster_ResourceGroupToPreferredNode
  2216. // ===================================================================
  2217.         [Dynamic ,
  2218.         Provider ("MS_CLUSTER_PROVIDER") ,
  2219.         Description ("A resource group can have a preferred nodes list. "
  2220.         "List of the resource groups and their preferred nodes list." 
  2221.         ) : ToSubClass ,
  2222.         Locale (0x409) ,
  2223.         UUID ("{3e1e37d2-ad0d-47b8-a802-b94b7e25aa21}")
  2224.         ]
  2225. class MSCluster_ResourceGroupToPreferredNode : CIM_Component
  2226. {
  2227.         [Override ("GroupComponent") : ToSubClass ,
  2228.         Read : ToSubClass ,
  2229.         Min (1) : ToSubClass ,
  2230.         Max (1) : ToSubClass ,
  2231.         Description ("The resource group." ) : ToSubClass
  2232.         ]
  2233.     MSCluster_ResourceGroup REF GroupComponent ;
  2234.  
  2235.         [Override ("PartComponent") : ToSubClass ,
  2236.         Read : ToSubClass ,
  2237.         Description ("The preferred node for the resource group.") : ToSubClass
  2238.         ]
  2239.     MSCluster_Node REF PartComponent ;
  2240.  
  2241. }; //*** class MSCluster_ResourceGroupToPreferredNode
  2242.  
  2243. // ===================================================================
  2244. //    MSCluster_ClusterToNetwork
  2245. // ===================================================================
  2246.         [Dynamic ,
  2247.         Provider ("MS_CLUSTER_PROVIDER") ,
  2248.         Description ("Cluster uses network for communication." ) : ToSubClass ,
  2249.         Locale (0x409) ,
  2250.         UUID ("{F3CAB1DD-2F7D-484b-AD54-54187C0A8351}")
  2251.         ]
  2252. class MSCluster_ClusterToNetwork : CIM_Component
  2253. {
  2254.         [Override ("GroupComponent") : ToSubClass ,
  2255.         Read : ToSubClass ,
  2256.         Min (1) : ToSubClass ,
  2257.         Max (1) : ToSubClass ,
  2258.         Description ("The cluster." ) : ToSubClass
  2259.         ]
  2260.     MSCluster_Cluster REF GroupComponent ;
  2261.  
  2262.         [Override ("PartComponent"): ToSubClass ,
  2263.         Read : ToSubClass ,
  2264.         Description ("The network used cluster for communication.") : ToSubClass
  2265.         ]
  2266.     MSCluster_Network REF PartComponent ;
  2267.  
  2268. }; //*** class MSCluster_ClusterToNetwork
  2269.  
  2270. // ===================================================================
  2271. //    MSCluster_ClusterToNetworkInterface
  2272. // ===================================================================
  2273.         [Dynamic ,
  2274.         Provider ("MS_CLUSTER_PROVIDER") ,
  2275.         Description (
  2276.         "Cluster has many network interfaces installed on nodes it manages."
  2277.         ) : ToSubClass ,
  2278.         Locale (0x409) ,
  2279.         UUID ("{CB737284-A6D8-4d46-92F0-20992869A84E}")
  2280.         ]
  2281. class MSCluster_ClusterToNetworkInterface : CIM_Component
  2282. {
  2283.         [Override ("GroupComponent") : ToSubClass ,
  2284.         Read : ToSubClass ,
  2285.         Min (1) : ToSubClass ,
  2286.         Max (1) : ToSubClass ,
  2287.         Description ("The cluster.") : ToSubClass
  2288.         ]
  2289.     MSCluster_Cluster REF GroupComponent ;
  2290.  
  2291.         [Override ("PartComponent") : ToSubClass ,
  2292.         Read : ToSubClass ,
  2293.         Description ("The network interfaces.") : ToSubClass
  2294.         ]
  2295.     MSCluster_NetworkInterface REF PartComponent ;
  2296.  
  2297. }; //*** class MSCluster_ClusterToNetworkInterface
  2298.  
  2299. // ===================================================================
  2300. //    MSCluster_NetworkToNetworkInterface
  2301. // ===================================================================
  2302.         [Dynamic ,
  2303.         Provider ("MS_CLUSTER_PROVIDER") ,
  2304.         Description (
  2305.         "Network interfaces connected to a network."
  2306.         ) : ToSubClass ,
  2307.         Locale (0x409) ,
  2308.         UUID ("{099B1BE4-D4BD-4b56-9815-AA90234B03C6}")
  2309.         ]
  2310. class MSCluster_NetworkToNetworkInterface : CIM_Component
  2311. {
  2312.         [Override ("GroupComponent") : ToSubClass ,
  2313.         Read : ToSubClass ,
  2314.         Min (1) : ToSubClass ,
  2315.         Max (1) : ToSubClass ,
  2316.         Description ("The network.") : ToSubClass
  2317.         ]
  2318.     MSCluster_Network REF GroupComponent ;
  2319.  
  2320.         [Override ("PartComponent") : ToSubClass ,
  2321.         Read : ToSubClass ,
  2322.         Description ("The network interfaces.") : ToSubClass
  2323.         ]
  2324.     MSCluster_NetworkInterface REF PartComponent ;
  2325.  
  2326. }; //*** class MSCluster_NetworkToNetworkInterface
  2327.  
  2328. // ===================================================================
  2329. //    MSCluster_NodeToActiveGroup
  2330. // ===================================================================
  2331.         [Dynamic ,
  2332.         Provider ("MS_CLUSTER_PROVIDER") ,
  2333.         Description ("Groups active on a node.") : ToSubClass ,
  2334.         Locale (0x409) ,
  2335.         UUID ("{AE76778B-B9C4-4765-9E61-7A3DC17F919C}")
  2336.         ]
  2337. class MSCluster_NodeToActiveGroup : CIM_Component
  2338. {
  2339.         [Override ("GroupComponent") : ToSubClass ,
  2340.         Read : ToSubClass ,
  2341.         Min (1) : ToSubClass ,
  2342.         Description ("The node.") : ToSubClass
  2343.         ]
  2344.     MSCluster_Node REF GroupComponent ;
  2345.  
  2346.         [Override ("PartComponent") : ToSubClass ,
  2347.         Read : ToSubClass ,
  2348.         Description ("The group that is active on the node.") : ToSubClass
  2349.         ]
  2350.     MSCluster_ResourceGroup REF PartComponent ;
  2351.  
  2352. }; //*** class MSCluster_NodeToActiveGroup
  2353.  
  2354. // ===================================================================
  2355. //    MSCluster_NodeToActiveResource
  2356. // ===================================================================
  2357.         [Dynamic ,
  2358.         Provider ("MS_CLUSTER_PROVIDER") ,
  2359.         Description ("Resources active on a node.") : ToSubClass ,
  2360.         Locale (0x409) ,
  2361.         UUID ("{4D440386-1CC3-4dca-AFB2-DB74A60A3891}")
  2362.         ]
  2363. class MSCluster_NodeToActiveResource : CIM_Component
  2364. {
  2365.         [Override ("GroupComponent") : ToSubClass ,
  2366.         Read : ToSubClass ,
  2367.         Min (1) : ToSubClass ,
  2368.         Max (1) : ToSubClass ,
  2369.         Description ("The node.") : ToSubClass
  2370.         ]
  2371.     MSCluster_Node REF GroupComponent ;
  2372.  
  2373.         [Override ("PartComponent") : ToSubClass ,
  2374.         Read : ToSubClass ,
  2375.         Description ("The resource that is active on the node.") : ToSubClass
  2376.         ]
  2377.     MSCluster_Resource REF PartComponent ;
  2378.  
  2379. }; //*** class MSCluster_NodeToActiveResource
  2380.  
  2381. // ===================================================================
  2382. //    MSCluster_NodeToNetworkInterface
  2383. // ===================================================================
  2384.         [Dynamic ,
  2385.         Provider ("MS_CLUSTER_PROVIDER") ,
  2386.         Description ("Network interfaces connected to a node.") : ToSubClass ,
  2387.         Locale (0x409) ,
  2388.         UUID ("{82459303-B1E9-4ddf-970F-25B17AD2A01B}")
  2389.         ]
  2390. class MSCluster_NodeToNetworkInterface : CIM_SystemDevice
  2391. {
  2392.         [Override ("GroupComponent") : ToSubClass ,
  2393.         Read : ToSubClass ,
  2394.         Min (1) : ToSubClass ,
  2395.         Max (1) : ToSubClass ,
  2396.         Description ("The node.") : ToSubClass
  2397.         ]
  2398.     MSCluster_Node REF GroupComponent ;
  2399.  
  2400.         [Override ("PartComponent") : ToSubClass ,
  2401.         Read : ToSubClass ,
  2402.         Description ("The group that is active on the node.") : ToSubClass
  2403.         ]
  2404.     MSCluster_NetworkInterface REF PartComponent ;
  2405.  
  2406. }; //*** class MSCluster_NodeToNetworkInterface
  2407.  
  2408. // ===================================================================
  2409. //    MSCluster_ResourceGroupToResource
  2410. // ===================================================================
  2411.         [Dynamic ,
  2412.         Provider ("MS_CLUSTER_PROVIDER") ,
  2413.         Description ("Resources in a group.") : ToSubClass ,
  2414.         Locale (0x409) ,
  2415.         UUID ("{38DD5882-2610-4ba1-B24E-1CD955B7A6BF}")
  2416.         ]
  2417. class MSCluster_ResourceGroupToResource : CIM_Component
  2418. {
  2419.         [Override ("GroupComponent") : ToSubClass ,
  2420.         Read : ToSubClass ,
  2421.         Min (1) : ToSubClass ,
  2422.         Max (1) : ToSubClass ,
  2423.         Description ("The group.") : ToSubClass
  2424.         ]
  2425.    MSCluster_ResourceGroup REF GroupComponent ;
  2426.  
  2427.         [Override ("PartComponent") : ToSubClass ,
  2428.         Read : ToSubClass ,
  2429.         Description ("The resources within the group.") : ToSubClass
  2430.         ]
  2431.     MSCluster_Resource REF PartComponent ;
  2432.  
  2433. }; //*** class MSCluster_ResourceGroupToResource
  2434.  
  2435. // ===================================================================
  2436. //    MSCluster_ResourceTypeToResource
  2437. // ===================================================================
  2438.         [Dynamic ,
  2439.         Provider ("MS_CLUSTER_PROVIDER") ,
  2440.         Description ("Resources of a particular type.") : ToSubClass ,
  2441.         Locale (0x409) ,
  2442.         UUID ("{94F4F3DB-C193-42f1-B6AE-1C74817CD894}")
  2443.         ]
  2444. class MSCluster_ResourceTypeToResource : CIM_Component
  2445. {
  2446.         [Override ("GroupComponent") : ToSubClass ,
  2447.         Read : ToSubClass ,
  2448.         Description ("The resource type.") : ToSubClass
  2449.         ]
  2450.     MSCluster_ResourceType REF GroupComponent ;
  2451.  
  2452.         [Override ("PartComponent") : ToSubClass ,
  2453.         Read : ToSubClass ,
  2454.         Min (1) : ToSubClass ,
  2455.         Max (1) : ToSubClass ,
  2456.         Description ("The resource.") : ToSubClass
  2457.         ]
  2458.     MSCluster_Resource REF PartComponent ;
  2459.  
  2460. }; //*** class MSCluster_ResourceTypeToResource
  2461.  
  2462. // ===================================================================
  2463. //    MSCluster_ClusterToQuorumResource
  2464. // ===================================================================
  2465.         [Dynamic ,
  2466.         Provider ("MS_CLUSTER_PROVIDER") ,
  2467.         Description ("A cluster has a quorum resource.") : ToSubClass ,
  2468.         Locale (0x409) ,
  2469.         UUID ("{FF92D220-3079-44d9-A32B-BEB000E05F77}")
  2470.         ]
  2471. class MSCluster_ClusterToQuorumResource : CIM_Component
  2472. {
  2473.         [Override ("GroupComponent") : ToSubClass ,
  2474.         Read : ToSubClass ,
  2475.         Min (1) : ToSubClass ,
  2476.         Max (1) : ToSubClass ,
  2477.         Description ("The cluster.") : ToSubClass
  2478.         ]
  2479.     MSCluster_Cluster REF GroupComponent ;
  2480.         [Override ("PartComponent") : ToSubClass,
  2481.         Read : ToSubClass ,
  2482.         Min (1) : ToSubClass ,
  2483.         Max (1) : ToSubClass ,
  2484.         Description ("The quorum resource.") : ToSubClass
  2485.         ]
  2486.     MSCluster_Resource REF PartComponent ;
  2487.  
  2488. }; //*** class MSCluster_ClusterToQuorumResource
  2489.  
  2490. // ===================================================================
  2491. //    MSCluster_ResourceToDependentResource
  2492. // ===================================================================
  2493.         [Dynamic , Provider ("MS_CLUSTER_PROVIDER") ,
  2494.         Description ("Dependencies of a resource.") : ToSubClass ,
  2495.         Locale (0x409) ,
  2496.         UUID ("{C09C3AB9-E97C-46d8-921F-4B3EA2A7C457}")
  2497.         ]
  2498. class MSCluster_ResourceToDependentResource : CIM_Dependency
  2499. {
  2500.         [Override ("Antecedent") : ToSubClass ,
  2501.         Read : ToSubClass ,
  2502.         Description ("The Resouce.") : ToSubClass
  2503.         ]
  2504.     MSCluster_Resource REF Antecedent ;
  2505.  
  2506.         [Override ("Dependent") : ToSubClass ,
  2507.         Read : ToSubClass ,
  2508.         Description ("The resource to be depended on.") : ToSubClass
  2509.         ]
  2510.     MSCluster_Resource REF Dependent ;
  2511.  
  2512. }; //*** class MSCluster_ResourceToDependentResource
  2513.  
  2514. // ===================================================================
  2515. //    MSCluster_ClusterToNode
  2516. // ===================================================================
  2517.         [Dynamic ,
  2518.         Provider ("MS_CLUSTER_PROVIDER"),
  2519.         Locale (0x409) ,
  2520.         UUID ("{1DA51F43-8562-4093-9C3A-D9CBB35CF6D2}")
  2521.         ]
  2522. class MSCluster_ClusterToNode : CIM_ParticipatingCS
  2523. {
  2524.         [Override ("Antecedent") : ToSubClass ,
  2525.         Read : ToSubClass ,
  2526.         Min (1) : ToSubClass ,
  2527.         Max (1) : ToSubClass ,
  2528.         Description ("The cluster." ) : ToSubClass
  2529.         ]
  2530.     MSCluster_Cluster REF Antecedent ;
  2531.  
  2532.         [Override ("Dependent"): ToSubClass ,
  2533.         Read : ToSubClass ,
  2534.         Description ("Node managed by cluster.") : ToSubClass
  2535.         ]
  2536.     MSCluster_Node REF Dependent ;
  2537.  
  2538. }; //*** class MSCluster_ClusterToNode
  2539.  
  2540. // ===================================================================
  2541. //    MSCluster_NodeToHostedService
  2542. // ===================================================================
  2543.         [Dynamic ,
  2544.         Provider ("MS_CLUSTER_PROVIDER"),
  2545.         Locale (0x409) ,
  2546.         UUID ("{B3C77CEF-67E7-4112-A757-CB072D44EBA3}")
  2547.         ]
  2548. class MSCluster_NodeToHostedService : CIM_HostedService
  2549. {
  2550.         [Override ("Antecedent") : ToSubClass ,
  2551.         Read : ToSubClass ,
  2552.         Description ("The node hosting the service.") : ToSubClass
  2553.         ]
  2554.     MSCluster_Node REF Antecedent ;
  2555.  
  2556.         [Override ("Dependent") : ToSubClass ,
  2557.         Read : ToSubClass ,
  2558.         Description ("The hosted service.") : ToSubClass
  2559.         ]
  2560.     MSCluster_Service REF Dependent ;
  2561.  
  2562. }; //*** class MSCluster_NodeToHostedService
  2563.  
  2564. // ===================================================================
  2565. //    MSCluster_Event
  2566. // ===================================================================
  2567.         [Dynamic ,
  2568.         Provider ("MS_CLUSTER_PROVIDER"),
  2569.         Locale (0x409) ,
  2570.         UUID ("{01D7A9DE-B876-4bb6-ABDB-26B67C52D221}")
  2571.         ]
  2572. class MSCluster_Event : __ExtrinsicEvent
  2573. {
  2574.         [Description (
  2575.         "Major event category. Reserved for future use."
  2576.         ) : ToInstance ToSubClass
  2577.         ]
  2578.     uint32 EventTypeMajor ;
  2579.  
  2580.         [Description ("Subtype within major category.  For EventTypeMajor=0, "
  2581.         "This contains the Cluster Event mask value as returned by "
  2582.         "GetClusterNotify."
  2583.         ) : ToInstance ToSubClass
  2584.         ]
  2585.     uint32 EventTypeMinor ;
  2586.  
  2587.         [Description (
  2588.         "Name of object to which this event applies."
  2589.         ) : ToInstance ToSubClass
  2590.         ]
  2591.     string EventObjectName ;
  2592.  
  2593.         [Description (
  2594.         "Type of object to which this event applies."
  2595.         ) : ToInstance ToSubClass
  2596.         ]
  2597.     uint32 EventObjectType ;
  2598.  
  2599.         [Description(
  2600.         "WMI Path of object to which this event applies."
  2601.         ) : ToInstance ToSubClass
  2602.         ]
  2603.     string EventObjectPath ;
  2604.  
  2605. }; //*** class MSCluster_Event
  2606.  
  2607. // ===================================================================
  2608. //    MSCluster_EventObjectAdd
  2609. // ===================================================================
  2610.         [Dynamic ,
  2611.         Provider ("MS_CLUSTER_PROVIDER"),
  2612.         Locale (0x409) ,
  2613.         UUID ("{EDECEF0B-A3C7-4edd-BD75-1CF37F5547B8}")
  2614.         ]
  2615. class MSCluster_EventObjectAdd : MSCluster_Event
  2616. {
  2617.         [Description (
  2618.         "RESERVED FOR FUTURE USE: XML-encoded property names and values "
  2619.         "for added or changed properties"
  2620.         ) : ToInstance ToSubClass
  2621.         ]
  2622.     string EventProperty ;
  2623.  
  2624. }; //*** class MSCluster_EventObjectAdd
  2625.  
  2626. // ===================================================================
  2627. //    MSCluster_EventObjectRemove
  2628. // ===================================================================
  2629.         [Dynamic ,
  2630.         Provider ("MS_CLUSTER_PROVIDER"),
  2631.         Locale (0x409) ,
  2632.         UUID ("{F12EA54A-75FE-43c9-ACE4-5745D1CA0552}")
  2633.         ]
  2634. class MSCluster_EventObjectRemove : MSCluster_Event
  2635. {
  2636. }; //*** class MSCluster_EventObjectRemove
  2637.  
  2638. // ===================================================================
  2639. //    MSCluster_EventPropertyChange
  2640. // ===================================================================
  2641.         [Dynamic ,
  2642.         Provider ("MS_CLUSTER_PROVIDER"),
  2643.         Locale (0x409) ,
  2644.         UUID ("{4CB6135C-E55D-46fe-8AE4-51E24AF901BD}")
  2645.         ]
  2646. class MSCluster_EventPropertyChange : MSCluster_Event
  2647. {
  2648.         [Description (
  2649.         "RESERVED FOR FUTURE USE: XML-encoded property names and values "
  2650.         "for added or changed properties"
  2651.         ) : ToInstance ToSubClass
  2652.         ]
  2653.     string EventProperty ;
  2654.  
  2655. }; //*** class MSCluster_EventPropertyChange
  2656.  
  2657. // ===================================================================
  2658. //    MSCluster_EventStateChange
  2659. // ===================================================================
  2660.         [Dynamic ,
  2661.         Provider ("MS_CLUSTER_PROVIDER"),
  2662.         Locale (0x409) ,
  2663.         UUID ("{F68489E2-0301-4594-B25D-613637ECBA1A}")
  2664.         ]
  2665. class MSCluster_EventStateChange : MSCluster_Event
  2666. {
  2667.         [Description (
  2668.         "Current state of object reporting this state change. "
  2669.          "The value returned is one of the state constants for the "
  2670.          "cluster object identified by EventObjectType, found in "
  2671.          "clusapi.h as returned by the relevant GetClusterXXXState "
  2672.          "APIs."
  2673.          ) ]
  2674.     uint32 EventNewState ;
  2675.  
  2676. }; //*** class MSCluster_EventStateChange
  2677.  
  2678. // ===================================================================
  2679. //    MSCluster_EventGroupStateChange
  2680. // ===================================================================
  2681.         [Dynamic ,
  2682.         Provider ("MS_CLUSTER_PROVIDER"),
  2683.         Locale (0x409) ,
  2684.         UUID ("{D264369A-3133-45eb-AE1D-65B1B641AEAF}")
  2685.         ]
  2686. class MSCluster_EventGroupStateChange : MSCluster_EventStateChange
  2687. {
  2688.         [Description ("Current node hosting this group") ]
  2689.     string EventNode ;
  2690.  
  2691. }; //*** class MSCluster_EventGroupStateChange
  2692.  
  2693. // ===================================================================
  2694. //    MSCluster_EventResourceStateChange
  2695. // ===================================================================
  2696.         [Dynamic ,
  2697.         Provider ("MS_CLUSTER_PROVIDER"),
  2698.         Locale (0x409) ,
  2699.         UUID ("{F1163D38-0E12-49ed-B0AF-09C683F89243}")
  2700.         ]
  2701. class MSCluster_EventResourceStateChange : MSCluster_EventStateChange
  2702. {
  2703.         [Description ("Current node hosting this resource") ]
  2704.     string EventNode ;
  2705.  
  2706.         [Description ("Current group containing this resource") ]
  2707.     string EventGroup ;
  2708.  
  2709. }; //*** class MSCluster_EventResourceStateChange
  2710.  
  2711. instance of __InstanceProviderRegistration
  2712. {
  2713.     Provider = $InstanceProv ;
  2714.     SupportsGet = "TRUE" ;
  2715.     SupportsPut = "TRUE" ;
  2716.     SupportsDelete = "TRUE" ;
  2717.     SupportsEnumeration = "TRUE" ;
  2718.     QuerySupportLevels = NULL ;
  2719. };
  2720.  
  2721. instance of __MethodProviderRegistration
  2722. {
  2723.     Provider = $InstanceProv ;
  2724. };
  2725.  
  2726. instance of __EventProviderRegistration
  2727. {
  2728.     Provider = $EventProv ;
  2729.  
  2730.     EventQueryList = { "select * from MSCluster_Event" } ;
  2731. };
  2732.  
  2733. instance of __ClassProviderRegistration
  2734. {
  2735.     Provider = $ClassProv ;
  2736.     InteractionType = 1 ;           // Provider is a push provider
  2737.     SupportsGet = "TRUE" ;
  2738.     SupportsEnumeration = "TRUE" ;
  2739.     ResultSetQueries = { "select * from MSCluster_Resource" } ;
  2740. };
  2741.  
  2742.